Tag: django models

在order_by()中使用Django自定义模型方法属性

我目前正在学习Django,我的一些模型有自定义的方法来获取以特定方式格式化的值。 是否有可能使用这些自定义方法之一的值作为order_by()模型中的属性定义? 这是一个演示如何实现该属性的示例。 class Author(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=40) email = models.EmailField(blank=True, verbose_name='e-mail') def _get_full_name(self): return u'%s %s' % (self.first_name, self.last_name) full_name = property(_get_full_name) def __unicode__(self): return self.full_name 有了这个模型,我可以做到: >>> Author.objects.all() [<Author: John Doh>, <Author: Jane Doh>, <Author: Andre Miller>] >>> Author.objects.order_by('first_name') [<Author: Andre Miller>, <Author: Jane Doh>, <Author: John Doh>] 但我不能这样做: >>> […]

Django检查ManyToMany字段中是否有对象

我有一个相当简单的问题要解决。 我有合作伙伴模型有> = 0用户关联它: class Partner(models.Model): name = models.CharField(db_index=True, max_length=255) slug = models.SlugField(db_index=True) user = models.ManyToManyField(User) 现在,如果我有一个用户对象,并且有一个合作伙伴对象,那么检查用户是否与合作伙伴关联的最常见的Pythonic方法是什么? 我基本上需要一个语句,如果User关联到Partner ,则返回True。 我努力了: users = Partner.objects.values_list('user', flat=True).filter(slug=requested_slug) if request.user.pk in users: # do some private stuff 这工作,但我有一种感觉,有一个更好的办法。 另外,这将很容易卷入装饰,考虑到我需要一个命名参数( slug ))和请求对象( user )。 任何帮助将非常感激。

我如何限制只有在Django的相关对象的外键select

我有一个类似于以下的双向外交关系 class Parent(models.Model): name = models.CharField(max_length=255) favoritechild = models.ForeignKey("Child", blank=True, null=True) class Child(models.Model): name = models.CharField(max_length=255) myparent = models.ForeignKey(Parent) 我如何限制Parent.favoritechild的select只有父母本身的孩子? 我试过了 class Parent(models.Model): name = models.CharField(max_length=255) favoritechild = models.ForeignKey("Child", blank=True, null=True, limit_choices_to = {"myparent": "self"}) 但是这导致pipe理界面不列出任何孩子。

在1个Django应用程序中约20个模型

我已经开始在本地运行浏览器的应用程序。 最近经历了django教程,我认为使用django而不是简单的python可能会更好。 有一个问题:我至less有20个型号,每个都有很多function。 很简单,它会创build一个巨大的模型文件,也可能是巨大的意见。 我怎么把它们分开? 模型是所有相关的,所以我不能简单地把它们分成不同的应用程序,我可以吗?

将模型范围的帮助文本添加到django模型的pipe理员表单中

在我的Django应用程序中,我希望能够为我的一些模型的pipe理员更改表单添加自定义的帮助文本。 注意我没有谈论可以在单个字段上设置的特定于字段的help_text属性。 例如,在My_Model的My_App的变更表单的顶部,我希望能够添加一些说“有关我的模型的更多信息,请参阅http://example.com ”的HTML以提供一个链接到一个内部文档维基。 有没有简单的方法来完成这个,或者我需要为模型创build一个自定义的pipe理窗体? 如果是这样,你能给我一个我将如何做的例子吗?

覆盖Django admin中的默认查询集

我的模型之一有一个删除标志,用于全局隐藏对象: class NondeletedManager(models.Manager): """Returns only objects which haven't been deleted""" def get_query_set(self): return super(NondeletedManager, self).get_query_set().exclude(deleted=True) class Conversation(BaseModel): … deleted = models.BooleanField(default=False) objects = NondeletedManager() all_conversations = models.Manager() # includes deleted conversations 我如何覆盖Django的pipe理模块使用的默认查询集包括已删除的会话?

我如何从Django的checkbox中获取多个值

我想要使​​用request.POST['xzy']作为列表来获取多选checkbox的值。 这是我的模型和模板代码。 我的模型 class Recommend(models.Model): user=models.ForeignKey(User) book=models.ForeignKey(BookModel) friends=models.ManyToManyField(User, related_name="recommended") 我的模板 {% for friend in friends %} <input type="checkbox" name="recommendations" id="option{{friend.id}}" value={{friend.username}} /> <label for="option{{friend.id}}"><b>{{friend.username}}</b></label><br /> {% endfor %} 我的查看代码 if request.method == 'POST': recommendations=request.POST['recommendations'] 在这里,我希望'build议'是一个包含所有朋友id的列表,但是这里只是被覆盖,并且只包含最后一个循环迭代中分配的值。 我怎么解决这个问题。 需要帮助绝望。 谢谢。

用户在初始数据夹具

我在我的fixtures/initial_data.json默认创build了一些用户,以便进行一些testing“主题”。 我遇到的问题是密码生成。 我可以在“字段”中设置密码,但不会生成哈希密码: [ { "model": "auth.user", "pk": 1, "fields": { "username": "user1", "password": "password" } } ] 我需要一种方法来生成用户的密码。 我是否必须手动执行此操作,并像Django一样生成像{hash_method}${salt}${hashed_password}这样的string?

匹配查询不存在Django中的错误

我已经在django中实现了密码恢复function。 用我的方法,新的密码将被发送到他input的电子邮件ID。 而且,当我给出正确的电子邮件(数据库中存在的电子邮件ID)时,它的工作正常。 但是,当我给一个电子邮件ID不在数据库中,它给了我这个错误“DoesNotExist at / forgotPassword / UniversityDetails匹配查询不存在。“ 有人可以帮助解决这个问题吗? 将粘贴我的代码在这里。 有人可以帮我解决这个问题吗? forgotPassword.html() def forgotPassword(request): if request.POST: email=request.POST.get("email") user = UniversityDetails.objects.get(email=email) if(not user): print "No user" return render_to_response("forgotPassword.html") else: newPassword = user.password send_mail('Password Recovery', 'The password for your site is '+ newPassword, 'rv_nair@gmail.com', ['rv_ks@gmail.com'], fail_silently=False) return render_to_response("passwordRecovery.html") return render_to_response('forgotPassword.html') HTML <form name="forgotPassword" method="POST" id="myFormid" action="http://10.1.0.90:8080/forgotPassword/"> […]

在多个参数filter和django中的链式filter之间的区别

django中有多个参数的filter和链式filter有什么区别?