2012-05-13 8 views
1

djangoの管理者がレコードIDのようなディレクトリを作成した後、どうやってこれを行うことができますか?挿入後のdjango admnの使い方レコードIDを取得しますか?

私はsave_modelするにはそれを試して、それが動作していない、Gallery.IDなし

モデルを返します。

class Gallery(models.Model): 
    title = models.CharField(max_length=250) 
    added = models.DateTimeField() 
    active = models.BooleanField() 

    def __unicode__(self): 
     return self.title 

そしてAdminModel

class GalleryAdmin(admin.ModelAdmin): 
    save_on_top = True 
    list_filter = ('active',) 
    list_display = ('title','active','added') 
    ordering = ['-added'] 
    inlines = [ImagesInline] 

    def save_model(self, request, Gallery, form, change): 
     if not change: 
      Gallery.title = str(Gallery.id) 
     Gallery.save() 
+0

あなたのメソッドのオプションとして 'Gallery'を使わないでください。' Gallery'クラスを隠してしまい、とにかくメソッドがクラスではなくインスタンスを渡すので誤解を招きます。ドキュメントが示唆するように行い、 'obj'を使います。 –

答えて

1
をこれまでご GalleryAdminを変更

.. save()には、Galleryインスタンスがidになる前に必要です。

def save_model(self, request, Gallery, form, change): 
    Gallery.save() 
    if not change: 
     Gallery.title = str(Gallery.id) 
+1

'title'は保存されません。もう一度 'save()'を呼び出す必要があります。 – DrTyrsa

+0

はい、あなたは正しいです、それを見つけませんでした。 –

1
def save_model(self, request, Gallery, form, change): 
    if Gallery.id is None: 
     Gallery.save() 
    if not change: 
     Gallery.title = str(Gallery.id) 
    Gallery.save() 

これは2 save()年代に初回のみを行います。

関連する問題