Вариант использования приложения, которое я пытаюсь разработать, касается регистрации компании, которая заинтересована в франшизе.Я взял эту концепцию от franchisebazar для целей обучения.Там я увидел информацию о компании, информацию о бренде и бизнес-модель для регистрации компании.Вот почему я создал следующую модель.Я хочу, чтобы теперь создавались и обновлялись представления, чтобы из внешнего интерфейса я мог нажать на запрос API для создания и обновления.Я разработал следующие serializer
и APIView
.Однако, когда я пытаюсь проверить в браузере, работает ли закодированный способ или нет, я не смог увидеть форму для бренда и бизнес-модели, несмотря на то, что они вложены в компанию.Таким образом, я хочу знать, нужно ли мне расширять его, создавая представление для бренда и бизнес-модели по отдельности, или я сделал что-то не так в своем коде.
class Company(models.Model):
owner = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
name = models.CharField(max_length=150, blank=False, null=False)
phone_number = models.CharField(max_length=15, blank=False, null=False)
class Brand(models.Model):
company = models.ForeignKey(Company, related_name='company_brand', on_delete=models.CASCADE)
name = models.CharField(max_length=150, blank=False, null=False)
website = models.URLField()
description = models.TextField(blank=False)
class BusinessModel(models.Model):
company = models.ForeignKey(Company, related_name='company_business_model', on_delete=models.CASCADE)
industry = models.ForeignKey(Industry, null=True, related_name='industry', on_delete=models.SET_NULL)
segments = models.ForeignKey(Segment, on_delete=models.SET_NULL, null=True)
total_investment = models.CharField(max_length=50, choices=TOTAL_INVESTMENT, default=None)
def __str__(self):
return self.company.name
class CompanyView(views.APIView):
serializer_class = CompanySerializer
def get(self, request, pk=None, format=None):
reply = {}
try:
companies = Company.objects.all()
if pk:
company = companies.get(pk=pk)
reply['data'] = self.serializer_class(company).data
reply['data'] = self.serializer_class(companies, many=True).data
except Company.DoesNotExist:
reply['data'] = []
return Response(reply, status.HTTP_200_OK)
def post(self, request, pk=None, format=None):
reply = {}
company={}
if pk is not None:
try:
company = Company.object.get(pk=pk)
except Company.DoesNotExist:
return error.RequestedResourceNotFound().as_response()
serialized_data = self.serializer_class(instance=company, data=request.data, partial=True)
if serialized_data.is_valid():
serialized_data.save(owner=request.user)
else:
return error.ValidationError(serialized_data.errors).as_response()
reply['data'] = serialized_data.data
return Response(reply, status.HTTP_200_OK)
class CompanySerializer(serializers.ModelSerializer):
company_brand = BrandSerializer(many=True)
company_business_model = BusinessModelSerializer(many=True)
class Meta:
model = Company
fields = '__all__'