Hi everybody,

I've got a problem while accessing a model in the Django Adminpanel.
I uploaded the models file, i hope this makes it easier for you to 
understand my problem.

When I try to add or view a *Region *in the adminpanel, the server usually 
gives me an 500 server error.
This is what i get to see:
 
Error: Server ErrorThe server encountered an error and could not complete 
your request.

If the problem persists, please 
report<http://code.google.com/appengine/community.html> your 
problem and mention this error message and the query that caused it.

Now, in the uploaded file you may (or not) have seen that I want to have 25 
fields from Zip.

My guess is that Django connects to the database for every listbox it is 
generating.
Is there a way to cache the 2000+ zips?
Or, am I seeing it wrong? What should I do then?

Greetings


-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/django-users/-/uvmzpHMtx0gJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

from django.db import models
from django.contrib import admin

### Zip
class Province(models.Model):
    province_name = models.CharField(max_length=145)
    
    class Meta:
        verbose_name =  "provincie"
        
    def __unicode__(self):
        return self.province_name 
    
class Zip(models.Model):
    zip_code = models.IntegerField()
    zip_name = models.CharField(max_length=75)
    zip_lang = models.CharField(max_length=2)
    province = models.ForeignKey(Province)
    
    class Meta:
        ordering = ["zip_name"]
        verbose_name = "postcode"
        
    def __unicode__(self):
        return self.zip_name + ' (' + unicode(self.zip_code) +')'
    
### Contact
class Contact_type(models.Model):
    contact_type = models.CharField(max_length=50)
    class Meta:
        verbose_name = "contact type"
        verbose_name_plural = "contact types"
        
    def __unicode__(self):
        return self.contact_type
    

### Collaborator    
class Collaborator_function(models.Model):
    collaborator_function_name = models.CharField(max_length=100)
    
    class Meta:
        verbose_name = "medewerker functie"
        verbose_name_plural = "medewerker functies"
    
    def __unicode__(self):
        return self.collaborator_function_name

class Collaborator_type(models.Model):
    Collaborator_type_name = models.CharField(max_length=100)
    def __unicode__(self):
        return self.Collaborator_type_name
    
    class Meta:
        verbose_name = "medewerker type"
        verbose_name_plural = "medewerker types"
    
class Collaborator(models.Model):
    collaborator_first_name = models.CharField(max_length=45)
    collaborator_last_name = models.CharField(max_length=45)
    collaborator_birth_year = models.DateField()
    collaborator_start_year = models.DateField()
    collaborator_end_year = models.DateField(blank=True,null=True)
    collaborator_function = models.ForeignKey(Collaborator_function)
    collaborator_type = models.ForeignKey(Collaborator_type)
    collaborator_legal = models.CharField(max_length=100,blank=True,null=True)
    collaborator_vat = models.CharField(max_length=100,blank=True,null=True)
    collaborator_zoho_id= models.IntegerField(blank=True,null=True)
    collaborator_maximmo_id = models.IntegerField(blank=True,null=True)
    collaborator_biv_number = models.IntegerField(blank=True,null=True)
    collaborator_drupal_id = models.IntegerField(blank=True,null=True)
    
    def __unicode__(self):
        return self.collaborator_first_name + ' ' + self.collaborator_last_name
    
    class Meta:
        verbose_name = "medewerker"
        verbose_name_plural = "medewerkers"
    
class Contact_per_collaborator(models.Model):
    collaborator = models.ForeignKey(Collaborator)
    contact_link = models.CharField(max_length=150)
    contact_type = models.ForeignKey(Contact_type)
    def __unicode__(self):
        return self.contact_link
    
    class Meta:
        verbose_name = "contact"
    
class commission_collaborator_percentage(models.Model):
    collaborator = models.ForeignKey(Collaborator)
    commission_collaborator_percentage = models.IntegerField()
    commission_collaborator_start_date = models.DateField()
    commission_collaborator_end_date = models.DateField()
    
    class Meta:
        verbose_name = "Medewerker commissie (percentage)"
        verbose_name_plural = "Medewerker commissies (percentage)"

### Office    
class Office(models.Model):
    office_name = models.CharField(max_length=100)
    office_legal = models.CharField(max_length=100)
    office_address_street = models.CharField(max_length=100)
    office_address_number = models.CharField(max_length=25)
    office_zip = models.ForeignKey(Zip)
    office_vat_number = models.CharField(max_length=100)
    office_biv_number = models.IntegerField()
    office_maximmo_id = models.IntegerField()
    office_drupal_id = models.IntegerField(blank=True,null=True)
    collaborator_responsible = models.ForeignKey(Collaborator, related_name="collaborator_reception")
    collaborator_reception = models.ForeignKey(Collaborator, related_name="collaborator_responsible")
    commission_share_in = models.IntegerField()
    commission_share_out= models.IntegerField()
    office_parent = models.ForeignKey('self', null=True, db_column='office_parent', blank=True)
    def __unicode__(self):
        return self.office_name
    
    class Meta:
        verbose_name = "kantoor"
        verbose_name_plural = "kantoren" 
    
class Contact_per_office(models.Model):
    office = models.ForeignKey(Office)
    contact_link = models.CharField(max_length=150)
    contact_type = models.ForeignKey(Contact_type)
    def __unicode__(self):
        return self.contact_link
    
    class Meta:
        verbose_name = "contact"
    
### region    
class Region(models.Model):
    region_name = models.CharField(max_length=75)
    office = models.ForeignKey(Office)
    region_primary = models.BooleanField()
    def __unicode__(self):
        return self.region_name
    
    class Meta:
        verbose_name = "regio"
        verbose_name_plural = "regio's"
    
class Zip_per_region(models.Model):
    region = models.ForeignKey(Region)
    zip = models.ForeignKey(Zip)
    
    class Meta:
        verbose_name = "postcode"

    
### Poule
class Poule(models.Model):
    poule_name = models.CharField(max_length=145)
    poule_start_date = models.DateField()
    poule_end_date = models.DateField(blank=True,null=True)
    office = models.ForeignKey(Office)
    def __unicode__(self):
        return self.poule_name
    
class Collaborator_per_poule(models.Model):
    poule = models.ForeignKey(Poule)
    collaborator = models.ForeignKey(Collaborator)
    collaborator_share = models.IntegerField()
    collaborator_start_date = models.DateField()
    collaborator_end_date = models.DateField(blank=True,null=True)
                                             
    class Meta:
        verbose_name = "medewerker"

### Commission
class Commission_type(models.Model):
    type_name = models.CharField(max_length=145)
    def __unicode__(self):
        return self.type_name
    
    class Meta:
        verbose_name = "Commissie type"
    
### Property
class Property(models.Model):
    maximmo_ref = models.CharField(max_length=150)
    property_ref = models.IntegerField()
    property_address = models.CharField(max_length=150)
    property_zip = models.ForeignKey(Zip)
    
    class Meta:
        verbose_name = "pand"
        verbose_name_plural = "panden"

### Unit
class Unit_type(models.Model):
    unit_name = models.CharField(max_length=145)
    
    def __unicode__(self):
        return self.unit_name
    
    class Meta:
        verbose_name = 'unit type'
    
    
### Formula
class Formula_type(models.Model):
    formula_name = models.CharField(max_length=145)
    
    class Meta:
        verbose_name = 'formule type'
    
### Transaction
class  Transaction_type(models.Model):
    TYPE = (
      ('I', 'In'),
      ('O', 'Out'),
    )
    transaction_type_name = models.CharField(max_length=100)
    transaction_type_method =models.CharField(max_length=1,choices=TYPE)
    
    class Meta:
        verbose_name = 'transactie type'
    
class Transaction(models.Model):
    END_STATUS = (
      ('S', 'Sold'),
      ('R', 'Rented'),
      ('T', 'Terminated'),
    )
    transaction_start_date = models.DateField()
    transaction_end_date = models.DateField()
    transaction_end_status = models.CharField(max_length=1,choices=END_STATUS)
    transaction_end_discription = models.TextField(blank=True)
    unit_type = models.ForeignKey(Unit_type)
    property = models.ForeignKey(Property)
    office_second_id = models.ForeignKey(Office,related_name="office_third_id",blank=True,null=True)
    office_third_id = models.ForeignKey(Office, related_name="office_second_id",blank=True,null=True)
    commission_office_second_percentage = models.IntegerField(blank=True,null=True)
    commission_office_third_percentage = models.IntegerField(blank=True,null=True)
    #in
    transaction_type_in = models.ForeignKey(Transaction_type,related_name="transaction_type_out")
    formula_type_in = models.ForeignKey(Formula_type, related_name="formula_type_out")
    commission_type_in = models.ForeignKey(Commission_type, related_name="commission_type_out")
    commission_fix_in = models.IntegerField()
    commission_percentage_in = models.IntegerField()
    commission_external_amount_in = models.IntegerField()
    
    #out
    transaction_type_out = models.ForeignKey(Transaction_type,related_name="transaction_type_in")
    formula_type_out = models.ForeignKey(Formula_type,related_name="formula_type_in")
    commission_type_out = models.ForeignKey(Commission_type,related_name="commission_type_in")
    commission_fix_out = models.IntegerField()
    commission_percentage_out = models.IntegerField()
    commission_external_amount_out = models.IntegerField()
    
    class Meta:
        verbose_name = "transactie"
    
class Poule_per_transaction(models.Model):
    TRANSACTION_TYPES = (
            ('I', 'In'),
            ('O', 'Out'),
        )
                          
    poule = models.ForeignKey(Poule)
    transaction = models.ForeignKey(Transaction)
    transaction_type = models.CharField(max_length=1,choices=TRANSACTION_TYPES)
    poule_percentage = models.IntegerField();
    class Meta:
        verbose_name = "poule transactie"
    
### target
class Target(models.Model):
    target_start_date = models.DateField()
    target_end_date = models.DateField()
    target_goal_price = models.IntegerField()
    target_goal_quantity = models.IntegerField(blank=True,null=True)
    poule = models.ForeignKey(Poule)
    unit_type = models.ForeignKey(Unit_type)
    
    
###### ADMIN ####
### Collaborator
class ContactPerCollaborator(admin.TabularInline):
    model=Contact_per_collaborator
    extra=3

class CollaboratorAdmin(admin.ModelAdmin):
    list_display = ["collaborator_last_name","collaborator_first_name","collaborator_function"]
    list_filter = ["collaborator_last_name"]
    inlines =[ContactPerCollaborator]

### office
class ContactPerOffice(admin.TabularInline):
    model = Contact_per_office
    extra = 3
    
class OfficeAdmin(admin.ModelAdmin):
    inlines = [ContactPerOffice]

### zip
class ZipInline(admin.TabularInline):
    model = Zip_per_region
    extra = 25

class RegionAdmin(admin.ModelAdmin):
    inlines = [ZipInline]
    
### Poule
class CollaboratorPerPoule(admin.TabularInline):
    model=Collaborator_per_poule
    extra=5

class PouleAdmin(admin.ModelAdmin):
    inlines = [CollaboratorPerPoule]
    



admin.site.register(Collaborator, CollaboratorAdmin)
admin.site.register(Region, RegionAdmin)
admin.site.register(Office,OfficeAdmin)
admin.site.register(Province)
admin.site.register(Contact_type)
admin.site.register(Poule,PouleAdmin)
admin.site.register(Target)
admin.site.register(Unit_type)
admin.site.register(Collaborator_type)
admin.site.register(Collaborator_function)
admin.site.register(commission_collaborator_percentage)
admin.site.register(Commission_type)
admin.site.register(Transaction_type)

Reply via email to