from django.contrib.auth.models import BaseUserManager, AbstractBaseUser, PermissionsMixin
from django.conf import settings
#etc...
class Addresses(models.Model):
"""
Dane adresowe.
"""
name = models.CharField(max_length=200, verbose_name='Nazwa')
street = models.CharField(max_length=200, verbose_name='Ulica')
no_house = models.IntegerField(verbose_name='Numer budynku')
no_local = models.IntegerField(verbose_name='Numer lokalu', blank=True, null=True)
postal_code = models.CharField(max_length=200, verbose_name='Kod pocztowy')
city = models.CharField(max_length=200, verbose_name='Miasto')
region = models.CharField(max_length=200, verbose_name='Województwo')
content_type = models.ForeignKey(ContentType,verbose_name='Rodzaj modelu', related_name="content_type_%(class)s",)
object_id = models.PositiveIntegerField(verbose_name='Rodzaj obiekt', db_index=True)
content_object = generic.GenericForeignKey('content_type', 'object_id')
class Partners(AbstractBaseUser, PermissionsMixin):
"""
Użytkownik
"""
login = models.CharField(max_length=200, verbose_name='Login', help_text=_('Required. 30 characters or fewer. Letters, numbers and @/./+/-/_ characters'), unique=True, db_index=True)
company = models.BooleanField(verbose_name='Firma/Prywatny')
company_name = models.CharField(max_length=200, verbose_name='Nazwa firmy', blank=True, null=True)
www = models.URLField(verbose_name='Strona internetowa', blank=True, null=True)
name = models.CharField(max_length=200, verbose_name='Imię', blank=True, null=True)
surname = models.CharField(max_length=200, verbose_name='Nazwisko', blank=True, null=True)
phone = models.CharField(max_length=200, verbose_name='Telefon', blank=True, null=True)
email = models.EmailField(verbose_name='Email', blank=True, null=True)
regulations = models.BooleanField(verbose_name='Regulamin', default=True)
date_of_birth = models.DateField(verbose_name='Data urodzenia', blank=True, null=True)
is_staff = models.BooleanField(_('staff status'), default=True, help_text=_('Designates whether the user can log into this admin site.'))
is_active = models.BooleanField(_('active'), default=True, help_text=_('Designates whether this user should be treated as active. Unselect this instead of deleting accounts.'))
date_joined = models.DateTimeField(_('date joined'), auto_now_add=True)
objects = PartnersManager()
USERNAME_FIELD = 'login'
REQUIRED_FIELDS = []
def get_full_name(self):
return '%s %s' % (self.name, self.surname)
def get_short_name(self):
return self.login
def __unicode__(self):
return self.login
class Meta:
verbose_name = "Użytkownik"
verbose_name_plural = "Użytkownicy"
ordering = ['id']
get_latest_by = "id"
#admim.py:
from django.contrib.auth.admin import UserAdmin
from core.forms import PartnersChangeForm, PartnersCreationForm
#etc...
class AddressAdminInline(generic.GenericStackedInline):
model = Addresses
ct_field = "content_type"
ct_fk_field = "object_id"
extra = 1
max_num = 1
class PartnersAdmin(UserAdmin):
form = PartnersChangeForm
add_form = PartnersCreationForm
list_display = ('login', 'name', 'surname', 'is_superuser')
list_filter = ('is_superuser',)
save_on_top = True
inlines = [
AddressAdminInline
]
fieldsets = (
(None, {
'fields': ('login', 'password')
}),
('Personal info', {
'fields': ('email', 'www', 'date_of_birth')
}),
('Personal info 2', {
'fields': ('company','company_name', 'name', 'surname', 'phone', 'regulations' )
}),
('Permissions', {
'fields': ('is_superuser', 'is_staff', 'is_active', 'groups', 'user_permissions')
}),
('Important dates', {
'fields': ('last_login',)
}),
)
add_fieldsets = (
(None, {
'classes': ('wide',),
'fields': ('login', 'password1', 'password2')}
),
)
search_fields = ('login',)
ordering = ('login',)
filter_horizontal = ('groups', 'user_permissions')
admin.site.register(Partners, PartnersAdmin)
admin.site.register(Addresses)
Exception at /admin/core/partners/1/
<class 'core.models.Addresses'> has more than 1 ForeignKey to <class 'core.models.Partners'>
Request Method: | GET |
---|---|
Request URL: | http://localhost:8000/admin/core/partners/1/ |
Django Version: | 1.5c2 |
Exception Type: | Exception |
Exception Value: | <class 'core.models.Addresses'> has more than 1 ForeignKey to <class 'core.models.Partners'> |
Exception Location: | /Library/Python/2.7/site-packages/django/forms/models.py in _get_foreign_key, line 825 |
Python Executable: | /usr/bin/python |
Python Version: | 2.7.2 |
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
No comments:
Post a Comment