【问题标题】:How to pass foreign key id to form? or link form to a foriegn key value DJango如何将外键 id 传递给表单?或将表单链接到外键值 DJango
【发布时间】:2021-01-13 03:18:33
【问题描述】:

我正在尝试使用名称 Carl Park 自动填充我的表单学生字段。简而言之,我希望我的表单用于自动使用对象 ID,而不必从学生字段下拉菜单中手动选择名称 Carl Park。

如何自动将我的模型表单链接到外键 ID 并根据该值自动填充表单。

这是我当前的表单,我的 models.py forms.py views.py 和 HTML

 #models
class Teacher(models.Model):
    name = models.CharField(max_length=75)
    room = models.CharField(max_length=10)
    bio = models.TextField()
    

class Student(models.Model):
    teacher = models.ForeignKey('Teacher', on_delete=models.CASCADE)
    name = models.CharField(max_length=75)
  

class Student_Performance(models.Model):
    student = models.ForeignKey('Student', on_delete=models.CASCADE)
    behavior_grade = models.CharField(max_length=1)
    
    
    
#form
class StudentPerfromanceForm(ModelForm):
    
    class Meta:
        model = Student_Performance
        fields = ( "name", "behavior_grade")

        
#view
def student_details(request, id):
    obj  = get_object_or_404(Student,pk=id)
    
    form = StudentPerfromanceForm()
    if request.method == 'POST':
        form = StudentPerfromanceForm(request.POST)

        if form.is_valid():
            form.save(commit=True)
            return all_students_list(request) #pass success message

    return render(request, 'class_roster/student_details.html', {'obj':obj, 'reviewForm':form})



#HTML
<form method="POST">
    {% csrf_token %}
    {{reviewForm.as_p}}
    <input type="submit" value="Submit Review">
</form>

【问题讨论】:

  • 在您的链接中添加一个 get 参数,即当您单击某个学生详细信息的链接时,网址将类似于 student/1,其中 1 是学生的 pk 而不是 student/

标签: python django django-views django-forms


【解决方案1】:

我想要更多代码信息。

无论如何,如果你想设置学生自动使用 object_id,

试试

objects.get(query)  

例如)ModelClassName.objects.get(pk=1)

【讨论】:

  • 我需要它从详细信息页面动态工作。一个学生只是一个例子。我希望能够单击一个学生并从详细视图中记录有关所选学生的注释。
猜你喜欢
  • 2016-08-07
  • 2021-02-12
  • 2021-03-04
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 2013-11-20
  • 2014-09-02
  • 1970-01-01
相关资源
最近更新 更多