【问题标题】:How to reference self as a model with django-ajax-related-fields如何使用 django-ajax-related-fields 引用 self 作为模型
【发布时间】:2011-09-16 13:12:14
【问题描述】:

我正在尝试使用 django-ajax-related-fields,而我尝试创建关系的外键字段是模型本身。我尝试了“self”、Node 甚至 self(不带引号),结果相同。

这大概是我尝试使用它的方式:

class Node(models.Model):
    parent = ForeignKeyByLetter('self', field_name = "name")
    name = models.CharField(max_length = 256)

首先我真的有点迷失了如何使用它,而且这些文档并不是很有帮助。

任何帮助将不胜感激。

【问题讨论】:

    标签: python ajax django


    【解决方案1】:

    根据文档,ForeignKeyByLetter 是表单字段而不是模型字段,这解释了为什么它不适合您。

    我也不熟悉 django-ajax-related-fields,但从它的外观来看,您会想尝试以下方式:

    # in models.py
    class Node(models.Model):
        parent = ForeignKey('Node')
        name = models.CharField(max_length = 256)
    
    
    # in forms.py
    from models import Node
    from django.forms import ModelForm
    from ajax_filtered_fields.forms import ForeignKeyByLetter
    
    class NodeForm(ModelForm):
        class Meta:
            model = Node
        parent = ForeignKeyByLetter(Node, field_name = "name")
    

    以前没用过,可能是我错了。希望这至少能让你走上正轨。

    【讨论】:

    • 您也可以将该字段声明为parent = ForeignKey('self')。我更喜欢 Shawn 使用的显式方法(感觉更 Pythonic),但我想我会为了完整性而展示这个。
    • 我不敢相信我没有看到。你肯定让我走上了正确的轨道。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2018-02-04
    • 2019-03-17
    • 2021-03-03
    • 1970-01-01
    • 2015-12-11
    • 2014-12-28
    • 2011-03-30
    • 2014-07-23
    相关资源
    最近更新 更多