Мне нужно окно поиска, одно из полей модели имеет поле M2M. Я должен использовать его, но работает только тогда, когда я ищу идентификатор поля M2M, а не для имени. мои модели:Поиск полей M2M по именам не по id в django
class Specialities(models.Model):
name = models.CharField(max_length=100)
def __str__(self):
return self.name
class Profile(models.Model):
user = models.OneToOneField(User)
name = models.CharField(max_length=200)
specialities = models.ManyToManyField(Specialities)
def __str__(self):
return self.name
И мой вид:
class SearchView(TemplateView):
template_name = 'contadores/search.html'
def post(self,request,*args,**kwargs):
buscar = request.POST['buscar']
contadores = Profile.objects.filter(specialities=buscar)
ctx = {'contadores':contadores}
return render_to_response('contadores/resultados.html',ctx,context_instance=RequestContext(request))
QuerySet в «contadores» работает хорошо, но, как я уже говорил ранее, окно поиска только получить идентификатор поля M2M, если я искать слово в окне поиска django говорит: неверный литерал для int() с базой 10: 'niif' Я знаю причину, но как я могу передать в поле поиска слово поля M2M, связанное с специальностями модель вместо id?
@xecgr ruddra спасибо, вот работает :) я знал, что решение было довольно просто но я могу заставить его работать, спасибо! – dfrojas
приветствуется :) Если все работает, вы можете отметить ответ как «принятый». – ruddra