Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用Django将用户分配给新对象?_Python_Django - Fatal编程技术网

Python 如何使用Django将用户分配给新对象?

Python 如何使用Django将用户分配给新对象?,python,django,Python,Django,我正在尝试将当前登录的用户分配给Django中的帐户模型对象,但由于某些原因,没有分配该用户。我确实尝试了form.user=user.objects.get(username=request.user),但问题是相同的 我怎么能这么做 这是我的代码,登录的用户可以创建模型的新实例,但实例。用户保持为空 型号.py class Account(models.Model): name = models.CharField(max_length=100, null=True, blank=F

我正在尝试将当前登录的用户分配给Django中的
帐户
模型对象,但由于某些原因,没有分配该用户。我确实尝试了
form.user=user.objects.get(username=request.user)
,但问题是相同的

我怎么能这么做

这是我的代码,登录的用户可以创建模型的新实例,但
实例。用户保持为空

型号.py

class Account(models.Model):
    name = models.CharField(max_length=100, null=True, blank=False)
    user = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE,
        null=True
    )
class AccountForm(ModelForm):
    class Meta:
        model = Account
        fields = ['name']
def create_account(request):
    if request.method == 'POST':
        form = AccountForm(request.POST)
        if form.is_valid():
            form.user = request.user
            print('user', request.user) #  Return the user name correctly
            form.save()
            return redirect('accounts')
    else:
        form = AccountForm()
    return render(request,
                  'account/account_create.html',
                  {
                      'form': form
                  })
forms.py

class Account(models.Model):
    name = models.CharField(max_length=100, null=True, blank=False)
    user = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE,
        null=True
    )
class AccountForm(ModelForm):
    class Meta:
        model = Account
        fields = ['name']
def create_account(request):
    if request.method == 'POST':
        form = AccountForm(request.POST)
        if form.is_valid():
            form.user = request.user
            print('user', request.user) #  Return the user name correctly
            form.save()
            return redirect('accounts')
    else:
        form = AccountForm()
    return render(request,
                  'account/account_create.html',
                  {
                      'form': form
                  })
view.py

class Account(models.Model):
    name = models.CharField(max_length=100, null=True, blank=False)
    user = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE,
        null=True
    )
class AccountForm(ModelForm):
    class Meta:
        model = Account
        fields = ['name']
def create_account(request):
    if request.method == 'POST':
        form = AccountForm(request.POST)
        if form.is_valid():
            form.user = request.user
            print('user', request.user) #  Return the user name correctly
            form.save()
            return redirect('accounts')
    else:
        form = AccountForm()
    return render(request,
                  'account/account_create.html',
                  {
                      'form': form
                  })
account\u create.html

<h1>Create new account</h1>
<form action="{% url 'account_create' %}"
      method="post">
      {% csrf_token %}
      {{ form.as_p }}
<button class="button" type="submit">Create</button>
</form>
创建新帐户
{%csrf_令牌%}
{{form.as_p}}
创造

您应该使用以下命令,而不是
form.user=request.user

form = AccountForm(request.POST)
if form.is_valid():
    form.instance.user = request.user
或使用:


您不应使用
form.user=request.user
,而应使用:

form = AccountForm(request.POST)
if form.is_valid():
    form.instance.user = request.user
或使用:


嗨,我不需要自定义用户模型噢,你是说settings.py带有
AUTH\u user\u MODEL
对吗?嗨,我不需要自定义用户模型噢,你是说settings.py带有
AUTH\u user\u MODEL
对吗?现在可以了)谢谢你提供的替代解决方案现在可以了)谢谢你提供的替代解决方案