Django inlinemodeladmin - установить поле inline из запроса на сохранение (автоматически установить поле пользователя) (Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Django inlinemodeladmin - установить поле inline из запроса на сохранение (автоматически установить поле пользователя) (

Сообщение Anonymous »

У меня есть две модели, главная модель и связанная инлинмодель, которую я хотел бы показать в качестве встроенного в администраторе. Этот InlineModel может быть использован, скажем, для того, чтобы делать заметки о модели и следует отслеживать изменения в зарегистрированном пользователе администратора. Хотя это кажется простым (и, действительно, DOCS показывает пример для этого, когда поле пользователя является частью MainModel), я не могу понять его, когда поле находится на линии. InlineModel, не заполнение в поле пользователя < /li>
Пользовательский нажимает сохранение < /li>
Заполняет кодовое поле для недавно созданных экземпляров InlineModel < /li>
(BONUS! Пользовательский поле читается для существующих экземпляров и скрыта для новых внедорожных) Вопросы: < /p>


Это правильно? Это слишком Bas Save_model не требуется для экземпляров InlineModeladmin < /li>
Позволяет ли это делать это таким образом, чтобы я сохранил, не вызывая ошибки? (Пользователь требуется, валидация его)#models.py
class MainModel(models.Model):
some_info = models.IntegerField()

class InlineModel(models.Model):
main = models.ForeignKey(MainModel)
data = models.CharField(max_length=255)
user = models.ForeignKey('auth.User')

#admin.py
class InlineModelInline(admin.TabularInline):
model = InlineModel
fields = ('data', 'user')
#readonly_fields = ('data', 'user') #Bonus question later

class MainModelAdmin(admin.ModelAdmin):
list_display = ('id', 'some_info')
inlines = [InlineModelInline]

#def save_model(self, request, obj, form, change):
#http://docs.djangoproject.com/en/dev/re ... save_model
#Only called for MainModel, not for any of the inlines
#Otherwise, would be ideal

def save_formset(self, request, form, formset, change):
#http://docs.djangoproject.com/en/dev/re ... ve_formset
#Experimenting showd this is called once per formset (where the formset is a group of inlines)
#See code block at http://code.djangoproject.com/browser/d ... ns.py#L894
if not isinstance(formset.model, InlineModel):
return super(MainModelAdmin, self).save_formset(request, form, formset, change)
instances = formset.save(commit=False)
for instance in instances:
if not instance.pk:
instance.user = request.user
instance.save()
formset.save_m2m()


Подробнее здесь: https://stackoverflow.com/questions/301 ... user-field
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Django (admin.e104) должен наследовать от InlineModelAdmin.
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Filter inline field in Django Admin
    Anonymous » » в форуме Python
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Laravel: сохранение результатов запроса в переменной, а затем возможность повторного запроса с использованием этой перем
    Anonymous » » в форуме Php
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • Передача и сохранение данных на следующей странице без сеанса (передача, но не сохранение данных)
    Anonymous » » в форуме Php
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Как сохранение списка данных сохранение в DataFrame
    Anonymous » » в форуме Python
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»