Как я могу получить значения полей Taggable отдельно в Django?
- Прежде всего, я беру один вход от пользователя (например: Симптом = лихорадка).
- Симптомы хранятся в базе данных с теговым полем, и у меня есть еще одно теговое поле, которое называется медицина.
- Поле Taggable не повторяется. Как я могу сравнить пользовательский ввод со значением базы данных.
- Если одно или несколько "заболеваний" имеют симптом (лихорадка), тогда я хочу, чтобы все другие симптомы (сохраненные с лихорадкой) имели название заболевания.
пример (база данных болезней):
Болезнь_ | Симптомы медицина......(другие области)
денге__ | Лихорадка, головная боль, боль в мышцах, боль в суставах, боль в костях, боль за глазами |...
грипп ______ | Лихорадка, мышечные боли, головная боль, сухой кашель, усталость, слабость, озноб, потливость |...
ветряная оспа | Лихорадка, потеря аппетита, головная боль, усталость |...
models.py
class Disease(models.Model): did = models.AutoField(verbose_name='Disease Id', primary_key=True,auto_created=True) dName = models.CharField(max_length=100,unique=True) symptoms = TaggableManager(verbose_name='symptoms list', through=TaggedSymptoms) symptoms.rel.related_name = "+" medicine = TaggableManager(verbose_name='medicine list',through=TaggedMedicine) medicine.rel.related_name = "+"
views.py
def patfirst(request): if request.method == "GET": return render(request, 'personal/patfirst.html') if request.POST.get('Next'): newSymp = request.POST.get('newSymptom') args = {'newSymp' : newSymp,'didata':didata} #,'tagdata':tagdata} return render(request, 'personal/patfirst.html',args)
patfirst.html
<form method="post" action="#"> {% csrf_token %} Enter Symptom: <input type="text" name="newSymptom"/><br><br> <input type="submit" value="Next" name="Next"/> <input type="submit" value="None of these" name="NoneOfThese"/> </form> <div> {% for object in didata %} <ul> {% for tag in object.symptoms.all %} {% comment %} here i got all the symptoms stored in database {% endcomment %} {{ tag.name }} {% endfor %} </ul> {% endfor %} </div>