Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.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_Forms_Django Login - Fatal编程技术网

Python 用户登录DJANGO后如何保存数据

Python 用户登录DJANGO后如何保存数据,python,django,forms,django-login,Python,Django,Forms,Django Login,用户登录后,可以提交表单。单击submit按钮,数据将存储在DB中,但我应该如何将此信息连接到提交用户 我需要新数据库的代码和结构 从django开始。 任何帮助都将不胜感激 我已经将用户作为外键包含在CustomizeRequest模型中,但现在如何填写此信息 准确场景:用户登录后,一旦来到contactUs.html,他就会提交一份表格,告知旅行者人数。此号码存储在数据库中。但是现在我如何将这些号码中的每一个连接到提交的用户 型号.py class CustomizeRequest(mode

用户登录后,可以提交表单。单击submit按钮,数据将存储在DB中,但我应该如何将此信息连接到提交用户

我需要新数据库的代码和结构

从django开始。 任何帮助都将不胜感激

我已经将用户作为外键包含在
CustomizeRequest
模型中,但现在如何填写此信息

准确场景:用户登录后,一旦来到
contactUs.html
,他就会提交一份表格,告知旅行者人数。此号码存储在数据库中。但是现在我如何将这些号码中的每一个连接到提交的用户

型号.py

class CustomizeRequest(models.Model):
    user = models.ForeignKey(User)
    travellers = models.CharField(max_length=2)

    def __str__(self):
        return self.travellers
def contactUs(request):
    if request.method=="POST":
        form = CustomizeRequestForm(request.POST)
        form.save()
    else:
        form = CustomizeRequestForm()
    context_dict = {'form': form}
    return render(request, 'tour/contactUs.html', context_dict)
contactUs.html

<form method="POST" class="form-horizontal">
{% csrf_token %}
<div class="btn-group" data-toggle="buttons">
{% for radio in crform.travellers %}
    <label class="btn btn-default {% if radio.choice_label = '1'   %}active{% endif %}" for="{{ radio.id_for_label }}">
      {{ radio.choice_label }}
      {{ radio.tag }}
    </label>
{% endfor %}
</div>
<button type="submit" class="btn btn-default btn-block btn-warning">SUBMIT</button>
</form>

记录的用户可作为属性使用。您可以使用技巧获取未保存的模型实例,设置
user
字段,然后将实例保存到数据库:

from django.contrib.auth.decorators import login_required
from django.shortcuts import redirect, render

@login_required
def contactUs(request):    
    if request.method == "POST":
        form = CustomizeRequestForm(request.POST)
        if form.is_valid():
            customize_request = form.save(commit=False)
            customize_request.user = request.user
            customize_request.save()
            return redirect('.')
    else:
        form = CustomizeRequestForm()
    context_dict = {'form': form}
    return render(request, 'tour/contactUs.html', context_dict)
根据卡塔瓦兰的回答(检查表格是否有效):


在“customize_request=form.save(commit=False)”中,我收到一个错误:由于数据未验证,无法创建CustomizerRequest。我忘记了
是有效的()
调用。很抱歉并显示
CustomizeRequestForm
类的代码。我怀疑您的html模板可能无效。在CustomizeRequestForm中,我必须提到
字段=(“旅行者”)
,因为模型中有“旅行者”和“用户”字段。我这样做了,问题似乎得到了解决。所以,这是将该用户提供的所有输入与该特定用户关联起来的正确方法吗
from django.contrib.auth.decorators import login_required
from django.shortcuts import redirect, render

@login_required
def contactUs(request):    
    form = CustomizeRequestForm(data=request.POST or None)

    if request.method == "POST":
        if form.is_valid():
             customize_request = form.save(commit=False)
             customize_request.user = request.user
             customize_request.save()
             return redirect('.')
        else:
             pass # could add a notification here

    context_dict = {'form': form}
    return render(request, 'tour/contactUs.html', context_dict)