1

models.py

class SwagKey(BaseModel):
    key = models.CharField(max_length=255, unique=True, blank=False)
    keytype = models.CharField(max_length=255, default="tshirt")
    user = models.ForeignKey(User, null=True, blank=True, default=0)

admin.py

class SwagForm(ModelForm):
    keytype = forms.ChoiceField(widget = forms.Select(), choices = ([('tshirt','tshirt'), ('jacket','jacket'),('backpack','backpack'), ]), initial='3', required = True,)
    class Meta:
        model = SwagKey

class SwagAdmin(admin.ModelAdmin):
    list_display = ['key','keytype', 'user']
    fieldsets = [
        ("Keys",        {"fields": ['key', 'keytype']}),
        ("User",        {"fields": ['user']})
    ]
    form = SwagForm


admin.site.register(SwagKey, SwagAdmin)

私がエントリーを作成するとき、そのすべては素晴らしくてダンディです。ただし、編集して「キー」をユーザーに割り当てると、このキーを使用する唯一のエントリであるにもかかわらず、「このキーを持つスワッグキーはすでに存在します。」というメッセージが表示されます。このフィールドを一意にすることができますが、そのフィールドのいずれかを更新しても文句を言わないようにするにはどうすればよいですか?ありがとう!

4

1 に答える 1

0

OSQA の BaseModel クラスでこの問題が発生した場合、ソースは次の場所にあります: https://github.com/Syerram/osqa/blob/master/forum/models/base.py

于 2013-03-14T05:01:58.933 に答える