Tag: django

“RelatedManager”对象不是可迭代的Django

嘿,我已经环顾了一些在这里的simliarpost,但没有发现任何已经解决了我的问题。 我有以下型号, from django.db import models class Areas(models.Model): name = models.CharField(max_length = 120) order_in_sidebar_network = models.IntegerField(blank=True, null=True) order_in_section_network = models.IntegerField(blank=True, null=True) def __unicode__ (self): return self.area_name class Meta: verbose_name_plural = "Areas" verbose_name = "Area" class Countries(models.Model): name = models.CharField(max_length = 120, help_text = "The name of the country") area = models.ForeignKey(Areas, verbose_name = 'Area') def […]

Django:捕获完整性错误并使用模板显示自定义消息

在我的Django驱动的应用程序中,只有一个明显的情况是“IntegrityError”可能出现。 那么,如何捕获这个错误并使用模板显示消息?

在Django 1.8和Python 2.7.8中填充时,“模型尚未加载”错误

我正在使用此代码来填充我的数据库: import os def populate(): python_cat = add_cat('Python') add_page(cat=python_cat, title="Official Python Tutorial", url="http://docs.python.org/2/tutorial/") add_page(cat=python_cat, title="How to Think like a Computer Scientist", url="http://www.greenteapress.com/thinkpython/") add_page(cat=python_cat, title="Learn Python in 10 minutes", url="http://www.korokithakis.net/tutorials/python/") django_cat = add_cat(name="Django") add_page(cat=django_cat, title="Official Django Tutorial", url="http://djangoproject.com/en/1.5/intro/tutorial01/") add_page(cat=django_cat, title="Django Rocks", url="http://www.djangorocks.com/") add_page(cat=django_cat, title="How to Tango with Django", url="htttp://www.tangowithdjango.com/") frame_cat = add_cat(name="Other Frameworks") add_page(cat=frame_cat, title="Bottle", url="http://bottlepy.org/docs/dev/") […]

如何获得刚刚保存的logging的ID

我使用的Django 1.3为我的项目之一,我需要得到刚刚保存在数据库中的logging的ID。 我有如下面的代码来保存数据库中的logging: n = MyData.objects.create(record_title=title, record_content=content) n.save() logging的ID只保存自动增量。 有没有一种方法来获得该ID并在我的代码中的其他地方使用它?

Django模型 – 如何过滤ForeignKey对象的数量

我有一个模型A和B ,就是这样的: class A(models.Model): title = models.CharField(max_length=20) (…) class B(models.Model): date = models.DateTimeField(auto_now_add=True) (…) a = models.ForeignKey(A) 现在我有一些A和B对象,我想要得到一个查询,select所有A对象有less于2 B指向他们。 A就像一个池东西,用户(B)join池。 如果只有1或0join,则不应该显示该池。 这样的模型devise有可能吗? 还是应该修改一下?

内存高效(恒定)和速度优化迭代在Django的一个大表上

我有一个非常大的桌子。 它目前在MySQL数据库中。 我用django。 我需要遍历表的每个元素来预先计算一些特定的数据(也许如果我是更好的我可以做,但这不是重点)。 我想尽可能快地使用内存来保持迭代。 因为它已经清楚地限制了内存在大型Django QuerySet中的使用,并且为什么要通过一个耗费大量内存的大型Django QuerySet进行迭代? ,对django中所有对象的简单迭代将会终止该机器,因为它将从数据库中检索所有对象。 迈向一个解决scheme 首先,为了减less你的内存消耗,你应该确保DEBUG是False(或者猴子补丁游标: closuresSQL日志logging,同时保持settings.DEBUG? ),以确保django没有存储的东西connectionsdebugging。 但即使如此, for model in Model.objects.all() 是不行的。 甚至没有稍微改进的forms: for model in Model.objects.all().iterator() 使用iterator()将通过不在内部存储caching结果(尽pipe不一定在PostgreSQL上iterator()来节省一些内存。 但显然还是会从数据库中检索整个对象。 一个天真的解决scheme 第一个问题的解决scheme是通过chunk_size基于计数器来分割结果。 有几种写法,但基本上都是SQL中的OFFSET + LIMIT查询。 就像是: qs = Model.objects.all() counter = 0 count = qs.count() while counter < count: for model in qs[counter:counter+count].iterator() yield model counter += chunk_size 虽然这是内存有效率(恒定的内存使用量与chunk_size成正比),但是在速度方面确实很差:随着OFFSET的增长,MySQL和PostgreSQL(也可能是大多数数据库)都将开始窒息并放慢速度。 […]

为什么使用Celery运行计划任务优于crontab?

考虑到芹菜已经是运行任务队列的堆栈的一部分(即它不会被添加只是为了运行crons,这似乎是一个矫枉过正的恕我直言)。 它的“周期性任务”function如何可以作为crontab的替代品? 具体寻找以下几点。 主要优点/缺点crontab 使用芹菜比crontab更好的select Django具体使用案例:芹菜vs crontab运行基于django的周期性任务,当芹菜已被包含在堆栈中作为django- django-celery队列django任务。

用Django 1.5实现多个用户types

使用Django 1.5新的可configuration用户模型function实现多种用户types的推荐方法是什么? 我想有两种用户types:私人用户和交易用户,每个用户都有自己的一组必填字段。 有两种方法可以实现这一点: 1)多表inheritance class BaseUser(AbstractBaseUser): email = models.EmailField(max_length=254, unique=True) # … class PrivateUser(BaseUser): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=30) # … class TradeUser(BaseUser): company_name = models.CharField(max_length=100) # … 将多表inheritance与可configuration的用户模型结合使用会有什么问题吗? 2)使用具有“type”属性的单个模型 class User(AbstractBaseUser): email = models.EmailField(max_length=254, unique=True) user_type = models.CharField(max_length=30, choices={ 'P': 'Private', 'T': 'Trade', }) first_name = models.CharField(max_length=30, blank=True) last_name = models.CharField(max_length=30, blank=True) […]

按字段获取不同的Queryset值

我有这个模型: class Visit(models.Model): timestamp = models.DateTimeField(editable=False) ip_address = models.IPAddressField(editable=False) 如果用户在一天内访问多次, 如何根据ip字段筛选唯一的行? (我想要今天的独特访问) today = datetime.datetime.today() yesterday = datetime.datetime.today() – datetime.timedelta(days=1) visits = Visit.objects.filter(timestamp__range=(yesterday, today)) #.something? 编辑: 我看到我可以使用: Visit.objects.filter(timestamp__range=(yesterday, today)).values('ip_address') 得到只有ip字段的ValuesQuerySet。 现在我的QuerySet看起来像这样: [{'ip_address': u'127.0.0.1'}, {'ip_address': u'127.0.0.1'}, {'ip_address': u'127.0.0.1'}, {'ip_address': u'127.0.0.1'}, {'ip_address': u'127.0.0.1'}] 如何过滤这个唯一性没有评估QuerySet和采取数据库命中? # Hope it's something like this… values.distinct().count()

Django模板中的_()或{%trans%}?

在Django模板中,可以使用{{ _("Hello World") }}或{% trans "Hello World" %}来标记要翻译的string。 在文档中,“官方”方法似乎是{% trans %}标记,但是_()语法也被提及过一次 。 这些方法如何不同 (语法除外),为什么应该是一个更好的而不是另一个呢? 一个区别是,你显然不能使用带有标签和filter的{% trans %} 。 但这是否意味着我可以在任何地方使用_() ,如{{ _("String") }} ? 它的工作原理看起来比使用独立string的{% trans "String" %}和使用标签和filter的_()更清晰和更一致。