【问题标题】:how can I modify form model data in Django如何在 Django 中修改表单模型数据
【发布时间】:2020-01-19 08:05:23
【问题描述】:

我想从表单发送数据,但无法发送特定数据

例如: 在我的模型中有一个学生,我想将其与视图分开发送

在视图中:

student = Student.objects.filter(id=id) 
if request.method == "POST":
    form = StudentProject(request.POST, files=request.FILES)
    form.student_id=id
    form.save()
    return redirect('main')

形式:

class Meta:
    model=Project
    fields=['name','link','image','body','term']

在模型中:

name=models.CharField(max_length=100,null=False)
link=models.CharField(max_length=1000,null=False)
image=models.ImageField(upload_to='static/project/images/')
body=models.TextField()
term=models.DecimalField(max_digits=1,decimal_places=0,null=False)
student=models.ForeignKey(Student,on_delete=models.CASCADE)
created_at=models.DateTimeField(default=timezone.now)

【问题讨论】:

标签: python django django-models django-forms django-views


【解决方案1】:

我发现我可以像这样修改django中的ModelForm

class MyForm(forms.ModelForm):
    name=forms.CharField(label="Name",widget=forms.TextInput(
        attrs={
            'class':'form-control',
        }
    ))

【讨论】:

    【解决方案2】:

    如果您想发送特定数据,请排除您不想出现在表单上的所有字段。假设我只想要项目的名称:

    class Meta:
        model = Project
        fields = ['name']
    

    在我的模型中有一个学生,我想将其与视图分开发送

    我认为最简洁的方法是将初始表单分成两个,创建两个视图,并让用户分别输入。

    【讨论】:

    • 很抱歉,它与元类无关
    猜你喜欢
    • 2014-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多