我将提供此问题所需的所有详细信息。
问题描述:
- 我用 Django 表单存储了一些输入字段(即
FormPredmet) - 之后,我将表单保存在一个名为 >
Predmet - 提取数据时,我遇到了ModelForm没有的问题
- 打印或显示(在页面上) Predmet.predavacIme 对象时,我得到:
<input type="text" name="Ime_Predavaca" value="Elvir" maxlength="50" required id="id_Ime_Predavaca" /> <input type="text" name="Ime_Predavaca" value="Elvir" maxlength="50" required id="id_Ime_Predavaca" /> <input type="text" name="Ime_Predavaca" value="Dzenan" maxlength="50" required id="id_Ime_Predavaca" /> <input type="text" name="Ime_Predavaca" value="Petko" maxlength="50" required id="id_Ime_Predavaca" />
相反,我只想要这些中的每一个的单个值:
所需输出:Elvir, Elvir, Dzenan,Petko
概括:
- 我使用 FormPredmet(forms.Form) 获取数据这是我认为的问题
- 然后将数据保存到 Model Predmet
- 例如,我尝试获取任何 obj:myobj = Predmet.objects.get(pk=1)
- 在打印其中一个字段后 print(myobj.imePredavaca())
- 而不是像“Elvir”这样的值,我得到 HTML..input..(我存储了 html 吗?)
楷模models.py
class ModelRazred(models.Model):
godina = models.PositiveSmallIntegerField()
brojRazreda = models.PositiveSmallIntegerField()
ime = models.CharField(max_length=50)
prezime = models.CharField(max_length=50)
class Predmet(models.Model):
predavacIme = models.CharField(max_length=50)
predavacPrezime = models.CharField(max_length=50)
imePredmeta = models.CharField(max_length=50)
razred = models.ForeignKey(ModelRazred, on_delete=models.CASCADE)
网址urls.py
"""urlconf for the base application"""
from django.urls import path
from .views import *
urlpatterns = [
#Base
path('', home, name='home'),
# Stranice
path('dodajrazred/', dodajrazred, name='dodajrazred'),
path('predmeti/<int:razred_id>/', predmetisubmit, name='predmetisubmit'),
path('razred/<int:razred_id>/', detail, name='detail'),
path('predmetisubmit/<int:razred_id>/', predmetisubmit, name='predmetisubmit'),
# Metode
path('predmet_submit/<int:razred_id>/', predmet_submit, name='predmet_submit'),
]
意见views.py
def detail(request, razred_id):
# Funkcija vraca detalje o odredjenom razredu
# i njegove ucenike?
form = FormPredmet()
detaljiRazreda = ModelRazred.objects.get(pk=razred_id)
form.razred = detaljiRazreda
predmeti = Predmet.objects.filter(razred__id = razred_id)
# svi predmeti tog odredjenog razreda
data = {
'form': form,
'predmeti':predmeti,
'razred_id': detaljiRazreda.id,
'ime' : detaljiRazreda.ime,
'prezime': detaljiRazreda.prezime
}
形式forms.py
from django import forms
from .models import ModelRazred, Predmet
class Razred(forms.ModelForm):
godina = forms.IntegerField()
brojRazreda = forms.IntegerField()
ime = forms.CharField(max_length=50)
prezime = forms.CharField(max_length=50)
class Meta:
model = ModelRazred
fields = ('godina', 'brojRazreda', 'ime', 'prezime')
class FormPredmet(forms.Form):
Ime_Predavaca = forms.CharField(max_length=50)
Prezime_Predavaca = forms.CharField(max_length=50)
Ime_Predmeta = forms.CharField(max_length=50)
class Meta:
model = Predmet
fields = ('Ime_Predavaca', 'Prezime_Predavaca',
'Ime_Predmeta', 'razred')
def save(self, razredID):
razredPredmeta = ModelRazred.objects.get(pk=razredID)
myModel = Predmet(predavacIme=self['Ime_Predavaca'],
predavacPrezime=self['Prezime_Predavaca'],
imePredmeta=self['Ime_Predmeta'], razred=razredPredmeta)
myModel.save()