Benim modelleri: admin.py olarakDjango - admin UserProfile m2m alan - Hata
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.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)
Ama yeni kullanıcı eklemek ve bir şehir seçtiğinizde o hata alıyorum: IntegrityError/admin/auth/kullanıcı/add/ (1062, "Anahtar 'user_id' için giriş '3' ')
Kodumda sorun mu var? Herhangi bir şehir seçmezsem - kullanıcı düzgün eklenir. Bir şekilde, kullanıcı UserProfile'a bir kereden fazla ekleniyor.
Teşekkürler, şimdi çalışıyor! Çok basit bir btw: D – robos85
Teşekkürler! Bende aynı sorun vardı. Bu çözüm mantıklı ve mükemmel çalıştı. – adam
Mükemmel bir şekilde açıkladı. Belki de ek kullanıcı verilerinin saklanmasıyla ilgili Django dokümantasyonu, dokümantasyonda sunulan örneklerin aksini göstermediği için bunu belirtmek için güncellenmelidir. – CadentOrange