У меня есть столбец внешнего ключа в модели. И я использую модель формы для ее визуализации. Когда я сделал это переднему концу, html. Список отображается со значением ключевого объекта foriegn. Снимок экрана здесь Что мне нужно сделать, это показать указанные c значения столбца в списке выбора, чтобы пользователь мог легко выбирать. Ниже приведен код.
model.py
class Gurdian(models.Model):
created_by = models.ForeignKey(
User, on_delete=models.SET_NULL, default=1, null=True)
name = models.CharField(max_length=200, null=True)
contact = models.CharField(max_length=20)
address = models.TextField(null=True)
emerg_name = models.CharField(max_length=200, null=True)
emerg_contact = models.CharField(max_length=20, null=True)
emerg_relation = models.CharField(max_length=20, null=True)
doc_name = models.CharField(max_length=200)
doc_contact = models.CharField(max_length=20)
blood_type = models.CharField(max_length=10)
allergic = models.TextField(null=True)
class Students(models.Model):
created_by = models.ForeignKey(
User, on_delete=models.SET_NULL, default=1, null=True)
name = models.CharField(max_length=200, null=True)
dob = models.DateField(null=True)
age = models.IntegerField()
grade_choice = (
('G1', 'Grade-1'),
('G2', 'Grade-2'),
('G3', 'Grade-3'),
('G4', 'Grade-4'),
('G5', 'Grade-5'),
('G6', 'Grade-6'),
('G7', 'Grade-7'),
('G8', 'Grade-8'),
('G9', 'Grade-9'),
('G10', 'Grade-10'),
('G11', 'Grade-11'),
('G12', 'Grade-12'),
)
gender_choice=(
('M', 'Male'),
('F', 'Female'),
('N', 'None'),
)
gender=models.CharField(choices=gender_choice, max_length=10, null=True)
grade = models.CharField(choices=grade_choice, max_length=10, null=True)
attending_school = models.CharField(max_length=100)
course = models.ForeignKey(
Create_Class, on_delete=models.SET_NULL, default=1, null=True)
address = models.TextField(null=True)
parent_id = models.ForeignKey(
Gurdian, on_delete=models.SET_NULL, default=1, null=True)
forms.py
class Student_Model_Form(forms.ModelForm):
class Meta:
model = Students
fields = ('__all__')
exclude = ('created_by', 'age', 'course')
grade_choice = (
('G1', 'Grade-1'),
('G2', 'Grade-2'),
('G3', 'Grade-3'),
('G4', 'Grade-4'),
('G5', 'Grade-5'),
('G6', 'Grade-6'),
('G7', 'Grade-7'),
('G8', 'Grade-8'),
('G9', 'Grade-9'),
('G10', 'Grade-10'),
('G11', 'Grade-11'),
('G12', 'Grade-12'),
)
gender_choice=(
('M', 'Male'),
('F', 'Female'),
('N', 'None'),
)
widgets = {
'name': forms.TextInput(attrs={'class': 'form-control'}),
'dob': forms.DateTimeInput(attrs={'class': 'datetime-input form-control'}),
'grade': forms.Select(choices=grade_choice, attrs={'class': 'form-control'}),
'attending_school': forms.TextInput(attrs={'class': 'form-control'}),
'address': forms.Textarea(attrs={'class': 'form-control', 'rows': 5}),
'gender': forms.Select(choices=gender_choice, attrs={'class': 'form-control'}),
'parent_id': forms.Select(attrs={'class': 'form-control'}),
}
HTML
<form method='POST' action='{% url 'genius:stds-new' %}'>
{% csrf_token %}
{{form.as_p}}
<button class="btn btn-warning" type="submit">Register</button>
</form>
Вы помогаете будет оценена. Спасибо!