2017-07-21 27 views
0

私は間違っていることを理解していません。私は、Annoucement Modelのタイトルと説明を追加するだけで、残りは自動的に入力してください。ここに私のモデルです:save_model django adminを上書きできませんか?

class Annoucement(models.Model): 
    username = models.ForeignKey(User, on_delete=None) 
    title = models.CharField(max_length=500, default="") 
    description = models.TextField(max_length=5000, default="") 
    datetime = models.DateTimeField(default=datetime.now) 

    def __str__(self): 
     return self.title + " " + self.username.username 

これはadmin.pyファイルです。

from django.contrib import admin 

from .models import Profile, Activity, View, Annoucement 
# Register your models here. 


class AnnoucementAdmin(admin.ModelAdmin): 
    fields = ['title', 'description'] 


    def save_model(self, request, obj, form, change): 
     obj.username = request.user 
     print("yes") 
     super(AnnoucementAdmin, self).save_model(request, obj, form, change) 

admin.site.register(Profile) 
admin.site.register(Activity) 
admin.site.register(View) 
admin.site.register(Annoucement) 

また、管理パネルからモデルを保存すると、プリント(「はい」)も端末に表示されません。助けて!

答えて

1

1)admin.site.register(Annoucement, AnnoucementAdmin)

2)save_model

class AnnoucementAdmin(admin.ModelAdmin): 
    fields = ['title', 'description'] 

    def save_model(self, request, obj, form, change): 
     obj.username = request.user 
     print("yes") 
     return super(AnnoucementAdmin, self).save_model(request, obj, form, change) 
の最後で 'return'を追加します
1

あなたはこのように、クラスAnnoucementAdminに合格する必要があります。

.... 
admin.site.register(Annoucement, AnnoucementAdmin) 
関連する問題