我的模型:Django的 - 在管理用户配置M2M领域 - 错误
class UserProfile(models.Model):
TYPES_CHOICES = (
(0, _(u'teacher')),
(1, _(u'student')),
)
user = models.ForeignKey(User, unique=True)
type = models.SmallIntegerField(default=0, choices=TYPES_CHOICES, db_index=True)
cities = models.ManyToManyField(City)
class City(models.Model):
name = models.CharField(max_length=50)
slug = models.SlugField(max_length=50)
在admin.py:
admin.site.unregister(User)
class UserProfileInline(admin.StackedInline):
model = UserProfile
class UserProfileAdmin(UserAdmin):
inlines = [UserProfileInline]
admin.site.register(User, UserProfileAdmin)
@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
"""Create a matching profile whenever a user object is created."""
if created:
profile, new = UserProfile.objects.get_or_create(user=instance)
但是,当我添加新用户,然后选择一个城市,我得到这个错误:IntegrityError at/admin/auth/user/add/ (1062,“关键'user_id'的重复条目'3'))
我的代码有什么问题?如果我不选择任何城市 - 用户添加正确。某些方面,用户不止一次被添加到UserProfile。
谢谢,现在它工作! 这是如此简单顺便说一句:D – robos85 2011-05-24 22:08:45
谢谢!我有同样的问题。这个解决方案很有意义并且完美。 – adam 2012-02-02 17:52:11
优秀解释。也许关于存储额外用户数据的Django文档应该更新以提到这一点,因为文档中提供的示例将无法正常工作。 – CadentOrange 2012-12-03 09:38:29