我正在制作一个小词汇测验应用程序,一个单词的基本模型是这样的:
class Word(models.Model):
id = models.AutoField(primary_key=True)
word = models.CharField(max_length=80)
id_image = models.ForeignKey(Image)
def __unicode__(self):
return self.word
class Meta:
db_table = u'word'
Run Code Online (Sandbox Code Playgroud)
我目前正在自我测验的单词模型是这样的:
class WordToWorkOn(models.Model):
id = models.AutoField(primary_key=True)
id_student = models.ForeignKey(Student)
id_word = models.ForeignKey(Word)
level = models.IntegerField()
def __unicode__(self):
return u'%s %s' % (self.id_word.__unicode__(), self.id_student.__unicode__() )
class Meta:
db_table = u'word_to_work_on'
Run Code Online (Sandbox Code Playgroud)
"水平"表示我学到了多少.我已经学过的一组单词有这个模型:
class WordLearned(models.Model):
id = models.AutoField(primary_key=True)
id_word = models.ForeignKey(Word, related_name='word_to_learn')
id_student = models.ForeignKey(Student, related_name='student_learning_word')
def __unicode__(self):
return u'%s %s' % (self.id_word.__unicode__(), self.id_student.__unicode__() )
class Meta:
db_table = u'word_learned'
Run Code Online (Sandbox Code Playgroud)
当WordToWorkOn上的查询集返回时结果太少(因为它们已经足够好地学习以便移动到WordLearned并从WordToWorkOn中删除),我想找到要添加到其中的Word.我不知道一个好方法的部分是将它限制为尚未在WordLearned中的单词.
所以,一般来说,我想我想在一个单词的查询集上做某种类型的.exclude(),但它需要根据WordLearned表中的成员资格进行排除.有没有办法做到这一点?我发现有很多关于加入查询集的参考资料,但是找不到一个关于如何做到这一点的好文章(可能只是不知道要搜索的正确术语). …
我有简单的问题模型:
class Question(Polymorph):
text = models.CharField(max_length=256)
poll = models.ForeignKey(Poll)
index = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)
我想预先填充(保存时)带有ID值的索引字段.当然在保存之前我没有ID值(它之后创建),所以我想知道最简单的方法是什么?有任何想法吗 ?
我想django-signal,但是我必须两次调用save()方法.
这可能不难,但是......我只需要将最新的三个对象添加到我的数据库字段中.
因此,使用反向ID排序查询,最多三个对象.
一直在摆弄着
Records.objects.order_by(-id)[:3]
Records.objects.all[:3]
Run Code Online (Sandbox Code Playgroud)
并包括一个if子句来检查是否实际存在三个对象:
num_maps = Records.objects.count()
if (num_maps > 3): # etc...
Run Code Online (Sandbox Code Playgroud)
并使用reverse()和filter()一段时间......
但只是想不出来!我所做的一切都没有给出正确的结果,并且使用num_maps感觉非常不优雅.没有从文档中获得太多的快乐.有人可以帮忙吗?!
我怎样才能在django中执行这样的查询:
SELECT * FROM keywords_keyword WHERE id not in (SELECT keyword_id FROM sites_pagekeyword)
Run Code Online (Sandbox Code Playgroud)
在最新的SVN版本中,我们可以使用:
keywords = Keyword.objects.raw('SELECT * FROM keywords_keyword WHERE id not in (SELECT keyword_id FROM sites_pagekeyword)')
Run Code Online (Sandbox Code Playgroud)
但RawQuerySet不支持filter(),count(),索引和其他东西.还有另外一种方法吗?
你如何在Django中使用模型formset?当你这样做:
from django.forms.models import modelformset_factory
OrderFormset = modelformset_factory(Order)
formset = OrderFormset()
Run Code Online (Sandbox Code Playgroud)
formset包含来自DB的所有订单...
如何将它们限制为例如profile.orders(Profila与FK连接到Order)?
在此先感谢,Etam.
我有django对象:
class Event(models.Model):
title = models.CharField(max_length=255)
event_start_date = models.DateField(null=True, blank='true')
...
class RegistrationDate(models.Model):
event = models.ForeignKey(tblEvents)
date_type = models.CharField(max_length=10, choices=registration_date_type)
start_date = models.DateField(blank='true', null='true')
end_date = models.DateField(blank='true', null='true')
Run Code Online (Sandbox Code Playgroud)
事件可以具有早期,正常和晚期注册期.
我写了一个函数,它接受一个事件并返回以下之一:None,"Early","Normal"或"Late"
一切都很好.
在我的应用程序中,我想显示一个事件列表以及它们的注册状态.所以我这样做了一个查询.
Events = tblEvents.objects.all()
Run Code Online (Sandbox Code Playgroud)
所以我有关于事件的所有信息,但没有状态.
获取模板中显示的每个事件的状态的最简单/最佳方法是什么.
我认为我可以编写一个模板标签,但这似乎更多的工作应该是必要的.
如何查询Employee获取与员工相关的所有地址, Employee.Add.all() 不起作用..
class Employee():
Add = models.ManyToManyField(Address)
parent = models.ManyToManyField(Parent, blank=True, null=True)
class Address(models.Model):
address_emp = models.CharField(max_length=512)
description = models.TextField()
def __unicode__(self):
return self.name()
Run Code Online (Sandbox Code Playgroud) 我有这个型号:
class blog(models.Model):
user = models.ForeignKey(User)
mail = models.EmailField(max_length=60, null=False, blank=False)
name = models.CharField(max_length=60, blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)
我希望(用户,电子邮件)是独一无二的.例如:
这是允许的:
1,hello @ hello.com,myblog
2,hello @ hello.com,secondblog
这是不允许的:
1,hello @ hello.com,myblog
1,hello @ hello.com,secondblog
Django有可能吗?
我只是想知道我是否可以从其他人那里得到关于这个话题的例子.
我在Django中有一个使用过滤器的页面,以便执行搜索.
目前我正在对GET参数进行简单检查,并相应地向查询集添加.filter():
if color:
query.filter(color=color)
Run Code Online (Sandbox Code Playgroud)
这感觉有点像丑陋的方式,我有点卡住想知道如何让它变得更有活力.
有任何想法吗?
我正在用MySQL探索Django并且有一些我想讨论的事情 -
python manage.py syncdb?DEBUG=True and TEMPLATE_DEBUG=True解决方案的东西,我将在浏览器上获得查询性能(运行时等).提前致谢...
django ×10
django-models ×10
python ×5
django-views ×1
filter ×1
mysql ×1
performance ×1
sql ×1