我正在創建一個網站與用戶配置文件,但我遇到了一個問題。我很困惑User
在Django中的工作原理。這裏是我當前的代碼: 在Models.py
Django用戶和AbstractBaseUser
from django.contrib.auth.models import User
class Profile(models.Model):
user = models.OneToOneField(User)
username = models.CharField(max_length=20)
first_name = models.CharField(max_length=20)
last_name = models.CharField(max_length=20)
biography = models.TextField(max_length=1000)
votes = models.IntegerField(blank=True, null=True)
timestamp = models.DateTimeField(auto_now_add=True,
auto_now=False, null=True
)
def __unicode__(self):
return unicode(self.user.username)
class Post(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL)
title = models.CharField(max_length=100, blank=False)
body = models.TextField(blank=False)
description = models.CharField(max_length=100, blank=True)
date = models.DateTimeField(auto_now_add=True, auto_now=False)
keywords = models.CharField(max_length=100, blank=True)
votes = models.IntegerField(blank=True, null=True)
def __unicode__(self):
return unicode(self.title)
在我settings.py
我有AUTH_USER_MODEL = 'models.Profile'
集。
現在當我進入Admin
網站並創建一個新的Profile
時,它有一個User
字段,我必須選擇一個用戶。我必須選擇User
是我用python manage.py createsuperuser
創建的Django Admin超級用戶。要完全創建新的User
並且不能鏈接到Django Admin超級用戶,我應該使用AbstractBaseUser
而不是自定義User
嗎?我跟着一些教程,他們似乎都使用auth.User
方法。我在這裏做錯了什麼?
感謝您的信息!它似乎正在工作,因爲我需要。現在,管理頁面顯示每個「Profile」對象的用戶名,而不是「超級用戶」名稱。當我通過我的視圖創建一個'Profile'對象來創建一個新用戶時,他們在其管理頁面中顯示沒有選擇User。相反,它是空白的,但我仍然可以從下拉框中選擇一個「用戶」。這對我來說並不正確。 – tear728
@ tear728如果您創建新的用戶配置文件,很明顯新配置文件還沒有用戶模型關係,因此爲空下拉列表。 – doniyor
是的,我剛剛計算出來,當我去了,並試圖添加新的配置文件的用戶配置文件已分配給它,它不會讓我。再次感謝 – tear728