我读过一些文章,并尝试在模型中实现。
user = models.ForeignKey(settings.AUTH_USER_MODEL)
但每当我尝试为用户保存表单时,它都会声明该值不能为null。我假设是因为它没有传递/接收AUTH_用户
例如:
class Degree(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL)
degreeLevel = models.CharField(max_length = 50)
areaOfStudy = models.CharField(max_length = 50)
我觉得在创建用户时,我需要为所有使用user=models的模型创建一个信号。ForeignKey(settings.AUTH_USER_MODEL)但我一直在努力寻找从开始到结束处理此问题的资源,所以我不确定我会错在哪里。
任何帮助都会很好。。。
这个问题profiles_details.id不存在Django
非常感谢。
我曾经尝试过:
user=模型。ForeignKey(设置。AUTH_USER_MODEL,null=False,on_delete=模型。CASCADE,verbose_name=_(u"User"))但运行迁移时得到一个错误消息:
NameError: name '_' is not defined
如果我取出详细名称并尝试迁移,则会出现以下错误:
您试图在没有默认值的情况下将不可为空的字段“user”添加到详细信息中;我们不能这样做(数据库需要一些东西来填充现有的行)。请选择一个修复:1)立即提供一个一次性默认值(将在所有现有行上设置)2)退出,让我在模型中添加一个默认值。派克
也看https://docs.djangoproject.com/en/dev/topics/auth/customizing/#referencing-用户模型
但我不知道该怎么办:
django.contrib.auth.get_user_model().
我在你的问题中看到了一些细节:
>
user = models.ForeignKey (..., null=True,...)
如果您想解决\uu
无法识别的问题,应在文件顶部添加以下导入:
from django.utils.translation import ugettext as _
如果要在视图中填充用户
字段,可以按如下操作:
from django.views.generic import View
class MyView(View):
...
def get(request, *args, **kwargs):
myobject = Degree.objects.get(...) # do some query
myobject.user = request.user
myobject.save()
return ...
假设视图处理get请求并希望将当前用户分配给对象用户。
关于如何使用:django.contrib.auth.get_user_model
这里有一个例子
from django.contrib.auth import get_user_model
...
def create_user(username, first_name, last_name, *args, **kwargs):
user_class = get_user_model()
new_user = user_class.objects.create(username=username,
first_name=first_name, last_name=last_name)
基本上,get\u user\u model
函数返回您在设置中配置的类。验证用户模型
。例如,您可以从中访问其管理器(例如,对象
)并查询或创建新实例。