簡體   English   中英

如何在Django Admin中關聯字段?

[英]How to relate fields in Django Admin?

在模型中,我有一個DecimalField“ first_arg”和一個多選CharField“ second_arg”。

我想實現以下目標:在管理面板中,如果為“ second_arg”字段選擇了一個特定選項(例如“ B”),則將插入“ first_arg”表單字段的任何值增加2。僅在用戶界面級別發生。 什么是正確的方法?

由於它是管理界面的一部分,因此修改模型應該是錯誤的。 另一方面,我在文檔中找不到任何有關它的信息。 我考慮過只在靜態文件中使用一些JS,但這有點黑。 在Django Admin中,有沒有一種優雅的方式來做這些事情?

型號代碼:

a = "a"
b = "b"
etc = "etc"
RELEVANT_OPTIONS = (
    (a, "A"),
    (b, "B"),
    (etc, "etc")
)


class MyModel(models.Model):

    first_arg = models.DecimalField(
        max_digits=4,
        decimal_places=2,
        blank=True, null=True
    )
    second_arg = models.CharField(
        choices=constants.RELEVANT_OPTIONS,
        max_length=20,
        blank=True, null=True
    )

    class Meta:
        abstract = True

我認為您將不得不覆蓋模板並提供一些JavaScript。 它是相當可擴展的,並不是太“ hacky”(即,您不必覆蓋整個管理模板):

我知道的所有其他選項都會影響服務器端的情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM