私は「ユーザー」を拡張し、プラスそれは誕生日のようないくつかの追加属性を持っている農家と呼ばれるモデルがあり、電話番号などDjangoはどのように私は、このようなfirst_nameの、で参照するLAST_NAMEなど、ユーザーの属性を使用することができ、ユーザモデル
を拡張ファーマーモデル?または、私はFarmerテーブルの管理インターフェースにどのように表示できますか?私はファーマーモデルでfirst_name、last_nameをもう一度繰り返すことはしたくない。本質的にファーマーは同じfirst_name & last_nameを持つユーザーでもあります。
新しい農家を追加しようとすると、"Field 'first_name' doesn't have a default value"
というエラーが表示されます。
class Farmer(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
birth_date = models.DateField(auto_now=False)
address = models.TextField(max_length=500)
phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$', message="Phone number must be entered in the format: '+999999999'. Up to 15 digits allowed.")
phone_number = models.CharField(validators=[phone_regex], blank=True, max_length=20) # validators should be a list
#This helps to print in admin interface as e.g. Thomas the farmer, without this in admin interface you see farmer object which is difficult to distinguish
def __str__(self):
print(self.user.first_name) # __unicode__ on Python 2
return "%s" % (self.user)
マイadmin.py
class UserAdmin(admin.ModelAdmin):
list_display = ('id','username' ,'email', 'is_active', 'date_joined', 'is_staff','last_login',)
admin.site.unregister(User)
admin.site.register(User, UserAdmin)
admin.site.register(Farmer)
このエラーは、移行中または新しい農家の作成中にいつ発生しますか? – tobltobs
新しい農家を作っているうちに、移行は成功しました。私はその後、すべての既存のユーザーを削除し、新しいスーパーユーザーを作成し、後で1人のユーザーを作成しました。 – Nitish
あなたのモデルで参照している 'User'は、' django.contrib.auth.User'ですか? UserAdminまたはFarmerAdmin経由で新しいユーザーを作成しますか? – tobltobs