我正在使用Django rest Framework來使api被android應用程序使用。我有一個模型的事件和地點:Django-Rest-Framework:如何發佈到foreignkey字段使用request.user登錄用戶
class Event(models.Model):
user=models.ForeignKey(User,related_name="%(class)s")
title=models.CharField(max_length=256)
venue=models.ForeignKey(Venue,related_name="%(class)s_venue")
description=models.CharField(max_length=256)
time=models.DateTimeField(max_length=256)
event_pic=models.ImageField(upload_to="photos/event_pic/%Y/%m/%d",null=True,blank=True)
album=models.ForeignKey(Album,null=True,blank=True,related_name="%(class)s_album")
photo=models.ForeignKey(Photo,null=True,blank=True,related_name="%(class)s_photo")
likes=GenericRelation(Like,null=True,blank=True)
comments=GenericRelation(Comments,null=True,blank=True)
這是我的場地模型。
class Venue(models.Model):
name=models.CharField(max_length=256)
longitude=models.FloatField(null=True,blank=True)
latitude=models.FloatField(null=True,blank=True)
def __unicode__(self):
return self.name
我想用request.user和使用name.Is有可能做到這一點的場地現場張貼到用戶字段,如果讓我怎麼做。 這裏是串行器和視圖。
class WeddingList(generics.ListCreateAPIView):
queryset=Wedding.objects.all()
serializer_class=WeddingSerializer
class WeddingDetail(generics.RetrieveUpdateDestroyAPIView):
queryset=Wedding.objects.all()
serializer_class=WeddingSerializer
class VenueList(generics.ListCreateAPIView):
queryset=Venue.objects.all()
serializer_class=VenueSerializer
class VenueDetail(generics.RetrieveUpdateDestroyAPIView):
queryset=Venue.objects.all()
serializer_class=VenueSerializer
class VenueSerializer(serializers.ModelSerializer):
class Meta:
model=Venue
fields=('name')
class WeddingSerializer(serializers.ModelSerializer):
class Meta:
model = Wedding
excludes=('id',)
將名稱作爲場地的名稱? – zacmwa 2014-08-27 16:03:01
這取決於你是哪一類。 pre_save方法有一個obj參數,即將要創建的對象。所以,如果你在VenueList,是的,obj將是一個場地 – AdelaN 2014-08-27 18:09:46
謝謝你@AdelaN。你得到了很多幫助。 – zacmwa 2014-08-27 18:39:00