【问题标题】:django admin filter forein key model when creatingdjango admin在创建时过滤外键模型
【发布时间】:2017-09-26 16:31:09
【问题描述】:

我有 2 个模型,一个是另一个模型。我想在创建用户名时创建模型过滤器 fk。我知道如何在 sql 中执行此操作,但不了解如何在 django 中执行此操作。我想到了api,对吗?或者我可以在模型或管理界面中完成?

class Post_links( models.Model):
    post_id = ParentalKey('Post')
    username_can_see=models.CharField(max_length=30, default='') 
class Post( models.Model):
        some_link =models.CharField(max_length=50, default='')

现在在创建新帖子时,我将检查链接,我只想查看链接可以看到当前用户。我该怎么写&

【问题讨论】:

    标签: python sql django foreign-keys wagtail


    【解决方案1】:

    查看文档,它们非常有用且易于阅读。这里是 Django 查询集文档https://docs.djangoproject.com/en/1.11/topics/db/queries/ 查询集是使用 Django ORM 查询数据库的方式

    【讨论】:

    • 我读过这个。我可以过滤站点输出中的视图,但对于管理员我不能这样做。我过滤了管理员输出,得到了当前用户行,但是当我添加新的时,我可以看到所有外键键:(而且我不知道该怎么做
    • 我想我没有完全理解你的要求^^。你的 Szenario 到底是什么?您想在 Admin (?) 中创建哪个对象的新条目,然后会发生什么?
    • 好的。看。当你添加一些东西时,django 会去模型并编译它。当我在 adminm 中选择某些内容并看到要添加的模型的所有外键时,我想为当前登录的用户过滤此外键。
    • 好的,我认为您正在管理员中寻找raw_id_fields = ('user',),如此处所述:docs.djangoproject.com/en/1.11/ref/contrib/admin/… 这用输入字段和放大镜替换下拉列表(我建议所有管理员 FK) glas 链接到搜索对话框。有了这个,您可以手动搜索例如一个用户,如果用户应该被预先过滤,你需要对管理员进行一些额外的修改。
    • 我在 wagtail 中尝试过,但没有效果。我发现github.com/wagtail/wagtail/blob/… 第 131 行:class ForeignObjectComparison(FieldComparison): def get_objects(self): model = self.field.related_model obj_a = model.objects.filter(id=self.val_a).first() obj_b = model.objects .filter(id=self.val_b).first() return obj_a, obj_b 我需要返回 obj_a = model.objects.filter(id=self.val_a).filter(user=self.username).first()=self .val_a).filter(user=self.username).first()
    猜你喜欢
    • 2018-02-03
    • 1970-01-01
    • 2013-09-23
    • 2012-07-15
    • 2018-03-19
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    • 2015-05-20
    相关资源
    最近更新 更多