Note that there are some explanatory texts on larger screens.

plurals
  1. POModels does not create tables when synched
    primarykey
    data
    text
    <p>I have some django models for my extended users profile. Problem is that this code does not create tables when syncdb is used (simply nothing happens. No validation errors). Why is that happening? (Also those models give import error elsewhere) :</p> <pre><code>#!/usr/bin/env python # encoding: utf-8 from django.db import models from django.contrib.auth.models import User from registration.signals import user_registered from forms import ExtendedRegistrationForm import hashlib class InheritedProfile(models.Model): first_name = models.CharField("Name", max_length=50, blank=True, null=True) last_name = models.CharField("Last name", max_length=50, blank=True, null=True) pid = models.CharField("PESEL", max_length=11, blank=True, null=True) street = models.CharField("Street", max_length=50, blank=True, null=True) number = models.CharField("Flat/house number", max_length=10, blank=True, null=True) code = models.CharField("Zip ", max_length=6, blank=True, null=True) city = models.CharField("City", max_length=50, blank=True, null=True) class Meta: abstract=True class UserProfile(InheritedProfile): def upload_path(self, field_attname): filename = hashlib.md5(field_attname).hexdigest()[:4] + "_" + field_attname return "uploads/users/%s" % (filename,) user = models.ForeignKey(User, unique=True, related_name='profile') image = models.ImageField(upload_to=upload_path, verbose_name="Image", blank=True, null=True) class Meta: ordering = ['-id'] db_table = 'userprofile' def __unicode__(self): return u"%s " % self.user.username def user_created(sender, user, request, **kwargs): form = ExtendedRegistrationForm(request.POST) extended_user = UserProfile(user=user) extended_user.is_active = False extended_user.first_name = form.cleaned_data['first_name'] extended_user.last_name = form.cleaned_data['last_name'] extended_user.pid = form.cleaned_data['pid'] extended_user.image = form.cleaned_data['image'] extended_user.street = form.cleaned_data['street'] extended_user.number = form.cleaned_data['number'] extended_user.code = form.cleaned_data['code'] extended_user.city = form.cleaned_data['city'] extended_user.save() user_registered.connect(user_created) class Friend(InheritedProfile): friend_of = models.ForeignKey(UserProfile, related_name='friend_of') class Meta: db_table = 'friend' </code></pre> <p>In contrary this code produces tables flawlessly :</p> <pre><code>#!/usr/bin/env python # encoding: utf-8 from django.db import models from django.contrib.auth.models import User import hashlib class InheritedProfile(models.Model): first_name = models.CharField("Name", max_length=50, blank=True, null=True) last_name = models.CharField("Last name", max_length=50, blank=True, null=True) pid = models.CharField("PESEL", max_length=11, blank=True, null=True) street = models.CharField("Street", max_length=50, blank=True, null=True) number = models.CharField("Flat/house number", max_length=10, blank=True, null=True) code = models.CharField("Zip ", max_length=6, blank=True, null=True) city = models.CharField("City", max_length=50, blank=True, null=True) class Meta: abstract=True class UserProfile(InheritedProfile): def upload_path(self, field_attname): filename = hashlib.md5(field_attname).hexdigest()[:4] + "_" + field_attname return "uploads/users/%s" % (filename,) user = models.ForeignKey(User, unique=True, related_name='profile') image = models.ImageField(upload_to=upload_path, verbose_name="Image", blank=True, null=True) class Meta: ordering = ['-id'] db_table = 'userprofile' def __unicode__(self): return u"%s " % self.user.username class Friend(InheritedProfile): friend_of = models.ForeignKey(UserProfile, related_name='friend_of') class Meta: db_table = 'friend' </code></pre> <p>Should I move this user_created function somewhere else ? Signals shouldn't create problems here...</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload