django - معالجة البيانات في لوحة إدارة جانغو على الحفظ




django-admin foreign-keys (2)

من مستندات Django :

ModelAdmin.save_model(self, request, obj, form, change)

يتم save_model أسلوب save_model في HttpRequest ومثيل نموذج ومثيل ModelForm وقيمة منطقية بناءً على ما إذا كان يقوم بإضافة الكائن أو تغييره. هنا يمكنك القيام بأي عمليات ما قبل أو بعد الحفظ.

على سبيل المثال لإرفاق request.user إلى الكائن قبل الحفظ:

class ArticleAdmin(admin.ModelAdmin):
    def save_model(self, request, obj, form, change):
        obj.user = request.user
        obj.save()

حسنًا ، ها هو النحيل:

# models.py
class Article( models.Model ):
    title           = models.CharField( max_length = 255 )
    author          = models.ForeignKey( User )
    published_at    = models.DateTimeField( auto_now_add = True )
    body            = models.TextField( )

    def __unicode__( self ):
        return self.title

# admin.py
from hpccoe.news.models import Article
from django.contrib import admin
from django import forms
from django.forms import widgets

class ArticleAdminForm( forms.ModelForm ):    
    title   = forms.CharField( max_length = 255, required = True )
    body    = forms.CharField( required = True, widget = widgets.Textarea )

class ArticleAdmin( admin.ModelAdmin ):
    fields  = [ 'title', 'body' ]
    form    = ArticleAdminForm

admin.site.register( Article, ArticleAdmin )

كما ترون ، أقوم بحذف حقل المؤلف في نموذج المسؤول. أريد ، بطريقة ما ، ملء هذا تلقائيًا قبل حفظه. كيف يمكنني تحقيق ذلك؟ لقد كنت على Google منذ الساعة الماضية ولكن دون جدوى.

شكرا لك مقدما.


class ArticleAdmin( admin.ModelAdmin ):
    fields  = [ 'title', 'body' ]
    form    = ArticleAdminForm

    def save_model(self, request, obj, form, change):
         obj.author = "name Here"
         obj.save()