Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.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 model creaton表单的一部分(在用户提交表单后添加到表单)_Python_Django_Django Models_Django Views_Django Forms - Fatal编程技术网

Python 允许用户仅输入django model creaton表单的一部分(在用户提交表单后添加到表单)

Python 允许用户仅输入django model creaton表单的一部分(在用户提交表单后添加到表单),python,django,django-models,django-views,django-forms,Python,Django,Django Models,Django Views,Django Forms,如何向用户提交的表单添加数据?我希望用户在表单中填写“名称”和“完成”,并自动添加“用户”(创建者)和“董事会” 代码: 您可以编辑包装在表单中的实例: from django.shortcuts import get_object_or_404 @login_required(login_url='loginPage') def taskAdd(request, pk): board = get_object_or_404(Board, user=request.user, pk=p

如何向用户提交的表单添加数据?我希望用户在表单中填写“名称”和“完成”,并自动添加“用户”(创建者)和“董事会”

代码:


您可以编辑包装在表单中的实例:

from django.shortcuts import get_object_or_404

@login_required(login_url='loginPage')
def taskAdd(request, pk):
    board = get_object_or_404(Board, user=request.user, pk=pk)
    form = AddTaskForm()
    if request.method == 'POST':
        form = AddTaskForm(request.POST)
        if form.is_valid():
            form.instance.user = request.user
            form.instance.board_id = pk
            form.save()
            return redirect('insideBoard', pk)
    context = {'form': form}
    return render(request, 'tasks/taskAdd.html', context)
从django.shortcuts导入get\u object\u或\u 404
@需要登录(登录url='loginPage')
def任务添加(请求,主键):
board=获取对象或404(board,user=request.user,pk=pk)
form=AddTaskForm()
如果request.method==“POST”:
form=AddTaskForm(request.POST)
如果form.is_有效():
form.instance.user=request.user
form.instance.board_id=pk
form.save()
返回重定向('insideBoard',主键)
上下文={'form':form}
返回渲染(请求'tasks/taskAdd.html',上下文)

注意:使用, 然后直接使用。如果对象不存在, 例如,由于用户自己更改了URL,
get\u object\u或_404(…)
将返回HTTP 404 Not Found响应,而使用
.get(…)
将导致HTTP 500服务器错误

#forms.py
class AddTaskForm(ModelForm):
    class Meta:
        model = Task
        fields = "__all__"
        exclude = ('user', 'board',)
#models.py

class Board(models.Model):
    title = models.CharField(max_length=50, null=True)
    user = models.ForeignKey(User, null=True, on_delete=models.CASCADE)

    def __str__(self):
        return self.title

class Task(models.Model):
    title = models.CharField(max_length=200, null=True)
    done = models.BooleanField(default=False, null=True)
    created_at = models.DateTimeField(auto_now_add=True, null=True)
    user = models.ForeignKey(User, null=True, on_delete=models.CASCADE)
    board = models.ForeignKey(Board, null=True, on_delete=models.CASCADE)


    def __str__(self):
        return self.title
from django.shortcuts import get_object_or_404

@login_required(login_url='loginPage')
def taskAdd(request, pk):
    board = get_object_or_404(Board, user=request.user, pk=pk)
    form = AddTaskForm()
    if request.method == 'POST':
        form = AddTaskForm(request.POST)
        if form.is_valid():
            form.instance.user = request.user
            form.instance.board_id = pk
            form.save()
            return redirect('insideBoard', pk)
    context = {'form': form}
    return render(request, 'tasks/taskAdd.html', context)