Вопрос по – Не удается отобразить DateField на форме с auto_now = True

1

У меня есть модель с auto_now и auto_now_add для полей Update и Create:

<code>class HotelProfiles(models.Model):
  fe_result_id = models.AutoField(primary_key=True)
  fe_created_date = models.DateTimeField(verbose_name='Created',
                                         blank=True,
                                         auto_now_add=True)
  fe_updated_date = models.DateTimeField(verbose_name='Updated',
                                         blank=True, 
                                         auto_now=True)
</code>

В Admin он отображает оба поля, но оставляет их недоступными для редактирования. Oни Похоже, что он не передан в мою форму для визуализации. Я не хочу их быть редактируемым, но я хотел бы отобразить вверху формы. Как я могу это сделать?

Это в моем классе HotelProfilesAdmin:

<code>readonly_fields = ('fe_result_id', 'fe_created_date', 'fe_updated_date', 'fe_owner_uid')
#date_hierarchy = 'lto_end_date' 
fieldsets = (
    ("Internal Use Only", {
        'classes': ('collapse',),
        'fields': ('fe_result_id', 'fe_created_date', 'fe_owner_uid', 'fe_updated_date', 'fe_result_status')
    }),
</code>

Ваш Ответ

2   ответа
1

поэтому, если есть лучший способ, мне было бы интересно услышать его. Код вида ниже. Я не был уверен, что Django не возвращает поля из запроса, и я узнал, что это так. Таким образом, что-то в рендеринге формы, которую я не понимаю, удалило эти поля, чтобы они не могли быть отображены. Итак, я скопировал их в файл с именем read_only перед рендерингом и передал его.

try:
    hotel_profile = HotelProfiles.objects.get(pk=hotel_id)
    read_only["created_on"] = hotel_profile.fe_created_date
    read_only["updated_on"] = hotel_profile.fe_updated_date
    f = HotelProfileForm(instance=hotel_profile)
    #f.save()
except:
    f = HotelProfileForm()
    print 'rendering blank form'
return render_to_response('hotels/hotelprofile_form.html', {'f' : f, 'read_only': read_only}, context_instance=RequestContext(request))
2
Make the fields you want readonly explicitly override what fields are available in this admin form (readonly fields will be present but readonly)

from django.contrib import admin

class HotelProfilesAdmin(admin.ModelAdmin) :
    # Keep the fields readonly
    readonly_fields = ['fe_created_date','fe_updated_date']

    # The fields in the order you want them
    fieldsets = (
        (None, {
            'fields': ('fe_created_date', 'fe_updated_date', ...other fields)
        }),
    )

# Add your new adminform to the site
admin.site.register(HotelProfiles, HotelProfilesAdmin)
Гоча, 1 сек, пока я готовлю пример.
Я уже сделал это. В Admin это прекрасно работает - поля отображаются, но не редактируются. Однако в моей лицевой форме кажется, что два поля не доставляются в шаблон. joel goldstick

Похожие вопросы