2016-04-13 5 views
0

locationをデータベース内で一意にします。私はすでにlogoに設定された場所を持っている場合は、できるだけ早く私もlogoとして場所を持っている別のMediaのオブジェクトを選択すると、私は以前Mediaオブジェクトがlocation Noneにセットまたはいくつかのデフォルト値を持っていると思います。これを行う方法がわからまたはどこdjangoドキュメントdjangoの一意の列の値

class Media(models.Model): 
    LOCATION = (
     ("video_intro", "Video Intro"), 
     ("logo", "Logo") 
    ) 

    TYPE = (
     ("video", "Video"), 
     ("gif", "GIF"), 
     ("picture", "Picture"), 
     ("audio", "Audio") 
    ) 
    name = models.CharField(max_length=50, blank=True) 
    location = models.CharField(choices=LOCATION, default=None, max_length=500, null=True) 
    uploaded = models.DateTimeField(auto_now_add=True) 
    media_type = models.CharField(max_length=50, choices=TYPE, default=None) 
    album = models.ForeignKey('Album', blank=True, null=True) 
    file = models.FileField(upload_to="media/") 
    url = models.CharField(max_length=2083, blank=True, null=True, default=None) 
    description = models.TextField(blank=True) 

答えて

1

に見ていない私はあなたのビューで手動でこれを行う必要があると思います。 新しいメディアを追加したり、メディアを変更するたびに、設定している場所が既にテーブルに入っているかどうかを確認する必要があります。すでにテーブルに入っている場合は、以前のメディアの場所を変更し、Noneに設定する必要があります。 メディアを削除するときは注意してください。メディアに場所がある場合は、その場所を別のメディアに戻したい場合があります。

+0

どうすればこの実装を開始できますか?新しいメディアオブジェクトを追加するとすぐにこの機能を開始する方法がわかりません – Liondancer