私はDjango RESTフレームワークを使用しています。django rest framework、non pkネストシリアライザ
私はこのように見えるモデルのカップル持っている:私は、(デフォルトのクエリセットをオーバーライド)このビューを使用している学生の数と、各ユーザー・レコードのデータを取得するために
class Users(models.Model):
userfieldid = models.AutoField(db_column='FieldID', primary_key=True) # Field name made lowercase.
forename = models.CharField(db_column='Forename', max_length=50, blank=True, null=True) # Field name made lowercase.
surname = models.CharField(db_column='Surname', max_length=50, blank=True, null=True) # Field name made lowercase.
student_number = models.CharField(db_column='ExternalFieldID', max_length=255, blank=True, null=True) # Field name made lowercase.
class Events(models.Model):
eventfieldid = models.AutoField(db_column='FieldID', primary_key=True) # Field name made lowercase.
eventdescription =models.CharField(db_column='EventDescription', max_length=200, blank=True, null=True) # Field name made lowercase.
eventdate = models.DateTimeField(db_column='EventDate', blank=True, null=True) # Field name made lowercase.
user= models.ForeignKey(Users,db_column='UserFieldID',related_name="holder")
を:
class UserDetail(generics.ListAPIView):
serializer_class = UserDetailSerializer
def get_queryset(self):
student_number=self.kwargs['student_number']
return Users.objects.using("lockers").filter(student_number=student_number)
と、すべての作業罰金です。このシリアライザ
class UserDetailSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model=Users
fields=('student_number','forename','surname')
。しかし、シリアライザを連鎖させて、指定されたユーザのレコードのイベントモデルのすべてのイベントを表示したいと思います。しかし、私はそれを理解(と私はよく、この間違ったを得ている可能性が)ちょうどシリアライザにこれを追加し、よう:
class EventsSerializer(serializers.ModelSerializer):
class Meta:
model=Events
class UserDetailSerializer(serializers.HyperlinkedModelSerializer):
events=EventsSerializer(many=True,read_only=True)
class Meta:
model=Users
fields=('student_number','forename','surname','events')
イベントシリアライザがそれに一致するようにしようとするように、これは動作しませんが、レコードののPKを反対ですstudent_number、これは匹敵しません。
EventsSerializerでUsers pk(userfieldid)を使用するユーザーのイベントを検索する方法はありますか?
私はこれを大丈夫と説明しました。それはすべて私にとって初めてのことなので、非常に混乱しています。
質問タイトルは、この質問は日付の比較についてですが、質問自体のどこにでも日付は記載していません。問題をより詳しく説明するためにタイトルを更新することをおすすめします。あああ、 –
私は古い質問を削除しましたが、タイトルを変更するのを忘れました! – user1412705