我有一個叫農夫模型延伸「用戶」,再加上它有一個像出生日期,電話號碼等一些附加的屬性Django的擴展用戶模型
如何使用用戶的屬性,如名字,姓氏指在農民模式?或者,也許我可以在Farmer表中的管理界面上顯示它們?我不想在我的Farmer模型中再次使用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
創建新農民時,遷移成功。然後我刪除了所有現有的用戶,創建了新的超級用戶並在之後創建了一個用戶。 – Nitish
您在模型中引用的'User'是'django.contrib.auth.User'嗎?你是否通過UserAdmin或FarmerAdmin創建新用戶? – tobltobs