์๋ ํ์ญ๋๊น,
์ ๋ฐ์ํ๋์ง ์ดํดํ์ง ๋ชปํ๋ ์ค๋ฅ๊ฐ ์์ต๋๋ค.
ForeignKey๊ฐ ์๋ ๋ชจ๋ธ์ ๋ํ ํธ์ถ์์ django rest ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋ ๋์ ์๋ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
Error:
Meta.fields contains a field that isn't defined on this FilterSet
From:
django_filters/filterset.py
Django version 1.8.5
django-filter version 0.11.0
๋ด ๋ชจ๋ธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
class Contract(models.Model):
idContract = models.AutoField(db_column='idContract',primary_key=True)
idClient = models.ForeignKey(Client, db_column='idClient',related_name='+')
contractmode = models.ForeignKey('Ccontractmode', db_column='ContractMode',related_name='+')
applicationdate = models.DateTimeField(db_column='applicationDate',null=True)
deliverydate = models.DateTimeField(db_column='deliveryDate', blank=True, null=True)
expirationdate = models.DateTimeField(db_column='expirationDate',null=True)
mode = models.CharField(max_length=16)
class Meta:
managed = False
db_table = 'Contract'
default_permissions = ('add', 'change', 'delete', 'view')
์ด๊ฒ ๋ฒ๊ทธ์ธ์ง ์๋๋ฉด ์ ๊ฐ ์๋ชป ์๊ณ ์๋ ๋ถ๋ถ์ธ์ง ์๋ ค์ฃผ์๋ฉด ์ ๋ง ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
์ ๋ง ๊ฐ์ฌํฉ๋๋ค.
์๋ด
์๊ฒ ์ต๋๋ค. ์ฃ์กํฉ๋๋ค. ๋ฐฉ๊ธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
class ContractViewSet(viewsets.ModelViewSet):
permission_classes = (DjangoModelPermissions2,
DjangoObjectPermissions2,)
queryset = Contract.objects.all()
serializer_class = ContractSerializer
filter_backends = (filters.DjangoFilterBackend,)
filter_fields = ('applicationdate',)
filter_fields์์ ํํ์ ๋ง๋ค๊ธฐ ์ํด ์ผํ๋ฅผ ๋ฃ์ง ์์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์๊ฒ ์ต๋๋ค. ์ฃ์กํฉ๋๋ค. ๋ฐฉ๊ธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
filter_fields์์ ํํ์ ๋ง๋ค๊ธฐ ์ํด ์ผํ๋ฅผ ๋ฃ์ง ์์์ต๋๋ค.