仅以年份作为CharField的Django模型DateField?

时间:2019-06-26 01:35:05

标签: python django

在我的模型中,我需要有日期字段,但只有年份,标准日期字段也要从月份和日期向我发送,因此我下载了名为partial_date_field的python程序包,该程序包添加了日期类型字段,但月份和日期是可选的,一切都很好直到我开始使用过滤器创建视图,不幸的是过滤器无法识别PartialDateField类型。所以我想知道是否可以将Year字段创建为CharField,这是一个好的解决方案吗?还是可以帮助我的过滤器识别此自定义类型字段“ PartialDateField”?

我看不出没有理由不对我只写Year(例如“ 2016”)的字段使用CharField,但是也许有理由不这样做吗?

或者也许我可以强制标准DateField只接受没有年份和月份的年份?

我的模特:

from django.db import models

from partial_date import PartialDateField


class Book(models.Model):
    title = models.CharField(max_length=75, verbose_name='Book title')
    authors = models.CharField(max_length=150, verbose_name='Authors')
    published_date = PartialDateField(verbose_name='Publishing date')
    pages = models.CharField(max_length=4, verbose_name='Number of pages')
    language = models.CharField(max_length=2, verbose_name='Language')
    image = models.URLField(verbose_name='Image', default=None, blank=True)

我的过滤器:

class BookFilter(FilterSet):

    class Meta:
        model = Book
        fields = ['title', 'authors', 'language', 'published_date']

0 个答案:

没有答案