【发布时间】:2011-02-21 21:17:39
【问题描述】:
我在 models.py 中有这 3 个模型
class Customer(models.Model):
name = models.CharField(max_length=50)
....
class Agent(django.contrib.auth.models.User):
regions = models.CharField(max_length=50, choices={...})
....
class Payment(models.Model):
added_by = models.ForeignKey(Agent)
customer = models.ForeignKey(Customer)
date = models.DateField(default=datetime.date.today())
amount = models.IntegerField(default=0)
在我的 admin.py 中,我有这些类:
class PaymentInline(admin.TabularInline):
model = Payment
extra = 0
class CustomerAdmin(admin.ModelAdmin):
inlines = [PaymentInline,]
问题#1: 是否可以在客户更改页面的“PaymentInline”中将“代理”字段预设为当前登录的代理。 我们可以预设 agent 字段的值,就像 django 对 'Customer' 字段所做的那样,它已经对内联隐藏了。
问题#2: 或者有没有办法在url中使用customer_id和agent_id“硬编码”来构建链接;在添加付款页面中,我们可以为客户字段和代理字段设置默认值和不可编辑值 例如, 这个 url[1] 将我们链接到正常的添加页面,但 customer_field 和 agent_feild 设置为 Agent.objects.get(id=1) 和 Customer.objects.get(id=1)。 (或者我们可以隐藏这两个字段,因为它们无论如何都是不可编辑的)
[1]http://localhost:8000/admin/my_app/payment/add/?customer_id=1&agent_id=1
有什么想法吗?
谢谢
最大
【问题讨论】:
标签: django django-admin