【问题标题】:Django Admin: How to show and hide fields on the basis of an app?Django Admin:如何根据应用显示和隐藏字段?
【发布时间】:2019-09-17 11:09:51
【问题描述】:

这是当前的场景:

我在应用“payment”中有一个模特Transaction

一旦安装了新应用程序payment_paypal,我想在该模型Transaction 中添加paypal_xyz_field。

即:在应用程序paypal中扩展Transaction并添加字段paypal_xyz_field

方法是什么? 如果我要扩展 Transaction 模型,那么我必须在管理员中同时显示 paypalTransaction 和 Transaction。

在管理员中,我想只显示一个模型“Transaction” paypal_xyz_field、paymill_xyz_field、stripe_xyz_field 不是 paypalTransaction、stripeTransaction 等。

另外,想根据应用从 DB/admin 中自动添加/删除字段

# payment/models.py
from django.db import models

class Payment(models.Model):
    base_field = models.CharField(max_length=64)

# paypal/models.py
from django.db import models
from payment.models import Payment

class Payment(Payment):
    paypal_specific_field = models.CharField(max_length=64)

# stripe/models.py
from django.db import models
from payment.models import Payment

class Payment(Payment):
    stripe_specific_field = models.CharField(max_length=64)

【问题讨论】:

标签: django django-admin


【解决方案1】:

在模型字段中添加可编辑属性并将其设置为 False。

from django.db import models

class Payment(models.Model):
    base_field = models.CharField(max_length=64)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-16
    • 1970-01-01
    • 2011-02-10
    • 2011-06-26
    • 2011-07-15
    • 2012-06-15
    • 1970-01-01
    • 2023-03-22
    相关资源
    最近更新 更多