Мне нужно присвоить результат поиска с __iexact значению внешнего ключа
class ListInfo(models.Model):
admin = models.ForeignKey(User,on_delete=models.CASCADE)
name= models.ForeignKey(NameList,on_delete=models.CASCADE,blank=True)
#others
class NameList(models.Model):
admin = models.ForeignKey(User,on_delete=models.CASCADE)
name = models.CharField(max_length=60)
#others
Я хочу создать объект из ListInfo
со значением по умолчанию name
, которое назначено результату имени поиска! а это мой views.py
def addNewNameInfo(request):
qs = NameList.objects.values_list('name',flat=True)
name = request.GET.get('name')
name_info = NameList.objects.filter(name__iexact=name)
add_new_name_info =ListInfoForm()
if request.method == 'POST':
add_new_name_info = ListInfoForm(request.POST)
if add_new_name_info .is_valid():
obj = add_new_name_info .save(commit=False)
obj.admin = request.user
obj.name= name_info.name # i also tried this : obj.name= request.GET.get('name')
obj.save()
messages.success(request,'created')
return render(request,'myfolder/my_template.html',{'names':qs,'name_info':name_info,'add_new_name_info':add_new_name_info })
и это мой шаблон
<form method='GET'>
<select name="name" class="form-control" id="type">
<option selected="true" disabled="disabled">names</option>
{% for value in names %}
<option value="{{value}}">{{ value }}</option>
{% endfor %}
</select>
<button type="submit">search</button>
</form>
<!--then -->
{% if name_info%}
{% for i in name_info%}
<!--return some information about the selected name -->
{% endfor %}
{% endif %}
{% if name_info%}
<form method="POST">{% csrf_token %}
{{add_new_name_info.errors}}
<ul>
{{add_new_name_info.as_p}}
</ul>
<button type="submit">save</button>
</form>
{% endif %}
но он вызывает th
объект QuerySet не имеет атрибута name
в то время как у меня имя в моем NameList
? можем ли мы сделать что-то подобное, чтобы присвоить значение из запроса GET значению внешнего ключа? спасибо