как я могу изменить данные модели формы в Django - PullRequest
1 голос
/ 19 января 2020

Я хочу отправить данные из формы, но не могу отправить конкретную c данные

, например: в моей модели есть ученик, которого я хочу отправить отдельно от представления

в просмотр:

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)

Ответы [ 2 ]

1 голос
/ 22 февраля 2020

Я обнаружил, что могу изменить ModelForm в django следующим образом:

class MyForm(forms.ModelForm):
    name=forms.CharField(label="Name",widget=forms.TextInput(
        attrs={
            'class':'form-control',
        }
    ))
0 голосов
/ 19 января 2020

Если вы хотите отправить указанные c данные, исключите все поля, которые вы не хотите указывать в форме. Предположим, мне нужно только название проекта:

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

в моей модели есть ученик, которого я хочу отправить отдельно от вида

Я думаю, что самый чистый способ сделать это, чтобы разделить исходную форму на две части, создать два представления и сделать так, чтобы пользователь вводил ее отдельно.

...