On 20 August 2011 02:33, Kristofer Pettijohn <kristo...@cybernetik.net>wrote:
> Hello, > > Is it possible to create specific models without a database table? > > Yes, it's possible. You want the "managed" attribute on the model - see https://docs.djangoproject.com/en/1.3/ref/models/options/#managed This will prevent Django from creating or modifying the db table > Basically what I would like to do is create an email account management > application that ties into my existing mail server and its API. I would > like Django to have a Users model and keep track of users, a Domains model > to keep track of the email domains for the user, but I don't want it to > actually keep track of email addresses. Once the user is in the > application, they will go into the "EmailAccount" model and I simply want > the model to query my mail server via its SOAP API. So when they > create/delete/edit email accounts, there will be form pages and simple > validation done by Django, but the actual work will be done by connecting to > the mail servers API and not a database. > > Is this possible? > > That is substantially harder, but could be possible. The main problem is that the Django ORM will want to write SQL queries when there's a link to the EmailAccount model. Your best bet is probably a proxy model that contains a reference to the relevant API record (e.g. the email address identifier or whatever the API uses), and then a custom save() method that writes the values out to the DB. You can use the Django form logic etc without it needing to be backed by a model. It will largely depend on how you want the EmailAccount to look - the closer you want it to work to a standard ORM model, the more work you'll have to do to trick things. If it's a simple field that isn't used for queries, then you could look at creating a custom field type that knows how to read/write the values to the API. All the above advice is worth exactly what you paid for it! Malcolm -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.