无法将关键字 'carmodel' 解析为字段。选项是:exterior_color,或者,interior_color

Cannot resole keyword 'carmodel' into field. Choices are: exterior_color, id, interior_color

因为我想过滤外键,所以我在views.py的方法dropdownlistsearch()中使用了carmodel和__。当 运行 代码时,它告诉它必须是一个字段。我不明白这部分。为什么我会收到此错误。我正在使用 django 1.6.5。

models.py

from django.db import models
class CarInfo(models.Model):0
    vin_number = models.CharField(max_length = 17)
    model = models.ForeignKey(CarModel)
    timestamp = models.DateTimeField(auto_now_add = True, auto_now = False)
    updated = models.DateTimeField(auto_now_add = False, auto_now = True)
    def __unicode__(self):
        return self.vin_number

    class CarModel(models.Model):
        model = models.CharField(max_length = 60)
        def __unicode__(self):
            return self.model

views.py

def dropdownsearch(request):
    try:
        q = request.GET.get('q')
    except:
        q = None

    if q:
        cars = CarInfo.objects.filter(carmodel__model__contains=q)
        template ='productions/resultstwo.html'
    else:
        template = 'prodcutions/cars.html'
    context = {}

    return render(request,template,context)

cars.html

<form action="/cars/s/" method="get">                        
    <select name="q">
    {% for info in modelinfos %}
        <option value="{{info.model}}">{{info.model}}</option>                                 
    {% endfor %}
    </select>  
</form>

您正在过滤正向关系,因此您使用您定义的实际字段,model

CarInfo.objects.filter(model__model__contains=q)

def 测试表(请求): form = CarInfo(request.POST or None) 如果 form.is_valid(): save_it = form.save(提交=假) save_it.save() return render_to_response("productions/testform.html",locals(),context_instance = RequestContext(请求))