2010-06-15 30 views
10

Tôi có một vấn đề tương tự như một vấn đề được giải quyết trước đây của tôi, ngoại trừ giải pháp thời gian này dường như không làm việc:lý do tại sao phương thức save_model không hoạt động trong admin.StackedInline?

How to auto insert the current user when creating an object in django admin?

Trước đây tôi sử dụng để ghi đè lên save_model để dập người dùng gửi bài viết. Bây giờ tôi cần phải làm tương tự cho ý kiến, nó không có vẻ làm việc nữa.

Bất kỳ ai có ý tưởng nào?

Cảm ơn rất nhiều!

Jason

Trả lời

19

Việc tiết kiệm không được thực hiện vào những năm InlineAdmin save_form, bạn phải nhìn vào save_formsets trong ModelAdmin mà inlines thuộc:

class MyAdmin(admin.ModelAdmin): 
    inlines = [MyInlineAdmin,.....] 

    def save_formset(self, request, form, formset, change): 
     formset.save() 
     if not change: 
      for f in formset.forms: 
       obj = f.instance 
       obj.user = request.user 
       obj.save() 
+1

Cảm ơn rất nhiều! Chỉ để cung cấp một số ví dụ đáng kể hơn: http://stackoverflow.com/questions/1477319/how-to-get-the-django-current-login-user – FurtiveFelon

+0

Bạn có chắc chắn: nếu không thay đổi: đúng không? Không nên nếu thay đổi :? Cảm ơn một bó cho ví dụ của bạn !!! Đã bỏ phiếu. –

+2

@LukeDupin Tôi nghĩ điều này là chính xác. Như được viết, nó sẽ chỉ thiết lập người dùng khi đối tượng nội tuyến được tạo nhưng không được cập nhật. – TehCorwiz

Các vấn đề liên quan