Django Admin: отношение OneToOne как встроенное?

В SQL Server вот немного приема, чтобы сделать это:

SELECT CAST(FLOOR(CAST(CURRENT_TIMESTAMP AS float)) AS DATETIME)

Вы бросаете DateTime в плавание, которое представляет Дату как целочисленную часть и Время как часть дня, это передается. Обрубите ту десятичную часть, затем бросьте тот назад в DateTime, и у Вас есть полночь в начале того дня.

Это, вероятно, более эффективно, чем весь DATEADD и материал DATEDIFF. Это - конечно, путь, легче вводить.

61
задан Jiaaro 11 December 2012 в 20:03
поделиться

2 ответа

Вполне возможно использовать инлайн для отношения OneToOne. Однако фактическое поле, определяющее связь, должно находиться во встроенной модели, а не в родительской - точно так же, как для ForeignKey. Переключите его, и он будет работать.

Редактировать после комментария : вы говорите, что родительская модель уже зарегистрирована администратором: затем отмените регистрацию и повторно зарегистрируйте.

from original.satchmo.admin import ProductAdmin

class MyProductInline(admin.StackedInline):
    model = MyProduct

class ExtendedProductAdmin(ProductAdmin):
    inlines = ProductAdmin.inlines + (MyProductInline,)

admin.site.unregister(Product)
admin.site.register(Product, ExtendedProductAdmin)
74
ответ дан 24 November 2019 в 17:21
поделиться

Ссылаясь на последний вопрос, какое решение было бы лучшим для нескольких подтипов. Например, класс Product с подтипом класса Book и подтипом класса CD. Как показано здесь, вам нужно будет отредактировать продукт: общие элементы плюс элементы подтипа для книги И элементы подтипа для компакт-диска. Таким образом, даже если вы хотите добавить только книгу, вы также получите поля для компакт-диска. Если вы добавите подтип, например DVD, вы получаете три группы полей подтипа, в то время как на самом деле вам нужна только одна группа подтипов в упомянутом примере: книги.

6
ответ дан 24 November 2019 в 17:21
поделиться
Другие вопросы по тегам:

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