Django Adminでは、私はURLを表示しています。
このURLは、添付されているオブジェクトのIDを使用して作成されます。
私はPython、django、およびdjango-rest-frameworkを使用しています。
私の見解では、私はApiDetailクラスのロジックを持っています。ここで私は 'get'メソッドをオーバーライドします。
私はviews.pyで現在のオブジェクトインクリメント:models.pyでAPIの作成時にDjango管理者に変更された値を保存するには?
currentObject = Api.objects.get(id=pk)
currentObject.currentNumber += 1
currentObject.save()
return self.retrieve(request, *args, **kwargs)
を私は、URLフィールドを設定します。
ここclass Api(models.Model):
myUrl = models.CharField(max_length=500, blank=True, verbose_name="Url", editable=False)
def save(self, *args, **kwargs):
self.formUrl = "https://custumUrl/"+str(self.id)+"/"
super(Api, self).save(*args, **kwargs)
私はformUrlフィールドを更新する方法保存APIをオーバーライドします。
フォームは最初のDjangoの管理に加えて、URLを保存するときに私が持っている問題があると言う:
https://custumUrl/none/
それは言う必要があります。
https://custumUrl/1/
それとも間違いなく、任意の数が、数オブジェクトid。
あなたがあなたの前にURLを割り当てるので:
しかし、あなたはそれを行うにはしたくない場合は、あなたが最初のオブジェクトを保存する必要がありますが、その後、再びそれを保存し、URLにid値を割り当てますIDを定義する前にオブジェクトを保存してください。しかし、URLをフィールドとして保存する理由は、単に必要なときに出力する方法を提供するだけではないのですか? –
フィールドとしてURLが必要なので、ApiAdminクラスに表示することができます。 ** class ApiAdmin(admin.ModelAdmin)**はadmin.pyにあります。 ** list_display =( 'objectName'、 'myUrl')**。私のユーザは、Djangoの管理者を利用し、他のサイトで使用するためのURLを提供します。 –
メソッドの結果は、管理者の[changelist](https://docs.djangoproject.com/en/1.9/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_display)と[readonly fields ](https://docs.djangoproject.com/ja/1.9/ref/contrib/admin/#django.contrib.admin.ModelAdmin.readonly_fields)を編集フォームに入力します。 –