标签: django-models

django queryset排除第二个模型中的条目

我正在制作一个小词汇测验应用程序,一个单词的基本模型是这样的:

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表中的成员资格进行排除.有没有办法做到这一点?我发现有很多关于加入查询集的参考资料,但是找不到一个关于如何做到这一点的好文章(可能只是不知道要搜索的正确术语). …

django django-models django-queryset

0
推荐指数
1
解决办法
5274
查看次数

如何在Django中预填充ID

我有简单的问题模型:

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()方法.

python django django-models

0
推荐指数
1
解决办法
277
查看次数

Django数据库查询 - 返回最近的三个对象

这可能不难,但是......我只需要将最新的三个对象添加到我的数据库字段中.

因此,使用反向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 django-models

0
推荐指数
1
解决办法
1691
查看次数

Django具体的sql查询

我怎样才能在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(),索引和其他东西.还有另外一种方法吗?

python sql django django-models

0
推荐指数
1
解决办法
232
查看次数

Django模型formset问题

你如何在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 django-models

0
推荐指数
1
解决办法
2537
查看次数

有关django模板中对象的额外数据

我有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)

所以我有关于事件的所有信息,但没有状态.

获取模板中显示的每个事件的状态的最简单/最佳方法是什么.

我认为我可以编写一个模板标签,但这似乎更多的工作应该是必要的.

python django django-templates django-models

0
推荐指数
1
解决办法
188
查看次数

在Django中查询

如何查询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)

python django django-models django-views

0
推荐指数
1
解决办法
135
查看次数

2个领域独特

我有这个型号:

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 django-models

0
推荐指数
1
解决办法
155
查看次数

灵活搜索页面的良好实践 - Django

我只是想知道我是否可以从其他人那里得到关于这个话题的例子.

我在Django中有一个使用过滤器的页面,以便执行搜索.

目前我正在对GET参数进行简单检查,并相应地向查询集添加.filter():

if color:
  query.filter(color=color)
Run Code Online (Sandbox Code Playgroud)

这感觉有点像丑陋的方式,我有点卡住想知道如何让它变得更有活力.

有任何想法吗?

python django filter django-models django-queryset

0
推荐指数
1
解决办法
262
查看次数

如何Django模型

我正在用MySQL探索Django并且有一些我想讨论的事情 -

  1. 如何添加索引(在某些字段上)?我可以通过Django模型层完成吗?
  2. 如果我想将一些旧数据迁移到这些新的数据库表/模型中,我是否必须自己编写一些脚本,或者Django是否为模式映射工具提供了模式?
  3. 如果我需要更改现有Django模型的模式,那么最简单的方法是什么?我知道这取决于我的架构,但它是否像创建新列和运行一样简单python manage.py syncdb
  4. 最后,我如何描述从Django Models运行的所有查询的MySQL数据库?我正在寻找类似DEBUG=True and TEMPLATE_DEBUG=True解决方案的东西,我将在浏览器上获得查询性能(运行时等).

提前致谢...

mysql django performance django-models

0
推荐指数
1
解决办法
448
查看次数