【问题标题】:'model' object has no attribute 'object' - error in Django?“模型”对象没有属性“对象” - Django 中的错误?
【发布时间】:2014-05-07 02:19:45
【问题描述】:

我收到此错误: 'Searches' object has no attribute 'object'。我正在使用generic ListView,并在template 中迭代object_list。这就是错误出现的地方。我的view 很简单。只需附上model。所有相关代码都在这里。

谢谢

网址模式:

urlpatterns = patterns('',
                       url(r'^create/$','customsearches.views.create_search' , name='create_search'),
                       url(r'^list/$', SearchListView.as_view(template_name='search_list.html'), name='search_list'),
                       )

我的模特:

class Searches(models.Model):
    SELLER_CHOICES=(('OWNER','owner'),
                    ('DEALER','dealer'),
                    ('BOTH','both'), )
    #search_id = models.IntegerField(primary_key=True)
    user = models.ForeignKey(User)
    make = models.CharField(max_length=100, blank=True)
    model = models.CharField(max_length=100, blank=True)
    keywords = models.CharField(max_length=100, blank=True)
    max_price = models.IntegerField(blank=True, null=True)
    min_price = models.IntegerField(blank=True, null=True)
    max_year = models.IntegerField(blank=True, null=True)
    min_year = models.IntegerField(blank=True, null=True)
    pic_only = models.NullBooleanField()
    search_title_only = models.NullBooleanField()
    owner_dealer_all = models.CharField(max_length=10,choices=SELLER_CHOICES,verbose_name='owner/dealer')
    class Meta:
        #managed = False
        db_table = 'Searches'
        verbose_name_plural = "Searches"

    def __unicode__(self):
        return "%s %s %s-%s" %(self.make,self.model,self.max_year,self.min_year)

    def get_absolute_url(self):
        return reverse('postings.views.detail',args=[model_to_dict(self.object)])

查看:

class SearchListView(ListView):
    model=Searches

模板:

{% extends "base.html" %}
{% block content %}

{% for obj in object_list %}
<p><a href="{{ obj.get_absolute_url }}">{{ obj }}</a></p>
{% endfor %}

{% endblock %}

【问题讨论】:

    标签: django django-templates django-generic-views django-errors


    【解决方案1】:

    问题就出来了:

    return reverse('postings.views.detail',args=[model_to_dict(self.object)])
    

    Searches 模型实际上并没有 object 属性。

    model_to_dict() 需要一个模型实例:

    model_to_dict(self)
    

    希望对您有所帮助。

    【讨论】:

    • 这确实是问题所在,但 model_to_dict 首先没有参与该调用。
    • @DanielRoseman 同意,这只是下一组问题/问题的开始。
    • @DanielRoseman:我想将这个Searches 模型的模型属性传递给另一个view,这样我就可以从另一个表中获取相关的帖子。不确定这是否是正确的方法。但在 SO 中设计问题通常被关闭或忽略。
    猜你喜欢
    • 2021-02-14
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 2017-01-22
    • 2021-10-09
    相关资源
    最近更新 更多