연습용 프레임 워크를 대여하려면 대여 응용 프로그램을 개발 중입니다. 구매자가 집주인에게 연락 할 수있는 곳이 있습니다. 임대인의 연락처 버튼을 클릭하여 이메일 주소 등을 기입해야합니다. 특정 임대료에 연락하고 싶다면 다음과 같이해야합니다.나머지 프레임 워크의 특정 임대료에 대한 문의처
rent = Rental.objects.get(id=token)
contact.objects.create(rent=rent, email_id=email_id, buyer=request.user)
API 프레임 워크의 직렬 함수 및 게시 기능의 나머지 프레임 워크 작성 기능을 혼란스럽게합니다. 내 모범을 보여 주면 누구든지 나를 깨우칠 수 있습니까?
class Rental(models.Model):
user = models.ForeignKey(User)
name = models.CharField(max_length=300, blank=False, null=False)
phone_number = models.PositiveIntegerField(null=False, blank=False)
class Contact(models.Model):
buyer = models.ForeignKey(User)
rental = models.ForeignKey(Rental, related_name="rent")
email_id = models.EmailField(blank=False, null=False)
class RentalSerializer(serializers.ModelSerializer):
user = serializers.ReadOnlyField(source='user.username')
galleries = GallerySerializer(many=True)
class Meta:
model = Rental
fields = ('__all__')
class ContactSerializer(serializers.ModelSerializer):
# buyer = UserSerializer(many=True)
# rent = RentalSerializer(many=True)
class Meta:
model = Contact
fields = '__all__'
class ContactedRent(APIView):
serializer_class = ContactSerializer
def get(self, request, token=None, format=None):
"""
Returns a list of contactedRent
"""
reply = {}
try:
contacted_rent = Contact.objects.filter(buyer_id=request.user.id)
if token:
specific_contacted_rent = contacted_rent.get(rental__id=token)
reply['data'] = self.serializer_class(specific_contacted_rent).data
else:
print ('no token')
reply['data'] = self.serializer_class(contacted_rent, many=True).data
except Contact.DoesNotExist:
return error.RequestedResourceNotFound().as_response()
except:
return error.UnknownError().as_response()
else:
return Response(reply, status.HTTP_200_OK)
def post(self, request, token=None, format=None):
"""
create a new contact to the rent
"""
rent = None
if not token is None:
try:
# contact = Contact.objects.get(buyer_id=request.user.id, rental__id=token)
rent = Rental.objects.get(id=token)
except Rental.DoesNotExist:
return RequestedResourceNotFound().as_response()
except:
return UnknownError.as_response()
serialized_data = self.serializer_class(instance=rent, data=request.data, partial=True)
if serialized_data.is_valid():
serialized_data.save()
else:
return error.ValidationError(serialized_data.errors).as_response()
제 예제를 사용하여 APIView의 작성 및 게시 기능을 이해할 수 있도록 도와주십시오. 다음은 UPDATE
url(r'^contact/(?P<token>[0-9a-z]+)/$', ContactedRent.as_view(), name="create-contact-to-rent"),
토큰
는 rental
가 제출 한 데이터로 전달하지 않기 때문에 (EMAIL_ID)
'ContactedRent''APIView'에 대한처럼 urlconf은 무엇을 통과? 그리고 어떤 데이터를 전달하고 있습니까? – user73657
업데이트 된 내 URL. 집세에 연락하려면 집세가 연락되어 있는지 추적하고 그 집주인에게 연락처 정보를 보내려면 집세가 필요합니다. 특정 게시물에 대한 댓글과 유사합니다. – pythonBeginner
POST 된 데이터에 더 이상 대여 ID를 전달하지 않습니까? 이미 URL에 있으니? – user73657