0
私はClient
とPaymentOptions
という2つのモデルを持っています。私のadmin.pyでdjango管理者にメソッドを入れる方法は?
class Client(models.Model):
name = models.CharField(max_length=50, null=True, unique=False)
contact = models.CharField(max_length=50, null=True, unique=False)
address = models.CharField(max_length=300, null=True, unique=False)
class ClientPaymentOption(models.Model):
name = models.CharField(max_length=30, null=True, unique=False, choices=CARD_TYPE)
action = models.CharField(max_length=30, null=True, unique=False, choices=CLIENT_PAYMENT_OPTION)
percent = models.FloatField(max_length=10, null=True, unique=False)
fixamount = models.FloatField(max_length=20, null=True, unique=False)
itemcharged = models.CharField(max_length=10, null=True, unique=False)
私はこれを持っている:
admin.site.disable_action('delete_selected')
class ClientAdmin(admin.ModelAdmin):
#display list
list_display = ('name','contact','address')
#display fields
fields = ('name','contact','address')
pass
admin.site.register(Client, ClientAdmin)
class PaymentOptionAdmin(admin.ModelAdmin):
list_display = ('name', 'action', 'percent', 'fixamount', 'itemcharged', 'client')
fields = ('name', 'action','percent', 'fixamount', 'itemcharged', 'client')
admin.site.register(ClientPaymentOption, ClientPaymentOptionAdmin)
それは私がdjango admin
で新しいClient
を作成するたびに、それはまた、自動的にそれがClientPaymentOption
をだ作成することが可能ですか?
は、私は私のadmin.pyでこれをやろう:
class ClientAdmin(admin.ModelAdmin):
#display list
list_display = ('name','b_type','banner','logo',
'contact','address','account_type',
'status','currency','color','user',
)
#display fields
fields = ('name','b_type','banner','logo','contact',
'address','account_type','status',
'currency','color','user',
)
pass
def save_model(self, request, obj, form, change):
ClientPaymentOption.objects.create(name='MasterCard',action='% Charged', client=obj.id, percent=0.10)
ClientPaymentOption.objects.create(name='Visa', action='% Charged',client=obj.id, percent=0.10)
が、私はこのエラーを得た:私はprint
パラメータにしようとしたとき、私は気づいた
ValueError at /admin/client_app/client/add/
Cannot assign None: "ClientPaymentOption.client" does not allow null values.
をそのまだクライアント保存されません...
print obj.id
None
誰かが私の場合についてのアイデアや提案を持っていますか?事前に
おかげで...
https://docs.djangoproject.com/en/dev/ref/signals/#post-syncdb 'post_syncdb'はあなたが探しているものです。これは、 'User'が作成されるたびに' UserProfile'の自動作成を記述するためにドキュメントが使用するのと同じパターンです。 –