0

我创建了我的扩展我的 model.py 有四个不同的

class User(AbstractUser):
    is_phamacy = models.BooleanField(default=False)
    is_restaurant = models.BooleanField(default=False)
    is_grocery_shop = models.BooleanField(default=False)
    is_rider = models.BooleanField(default=False)

class Restaurant(models.Model):
    restaurant_user = models.OneToOneField(
      settings.AUTH_USER_MODEL, on_delete=models.CASCADE, blank=True, null=True)
    restaurant_name = models.CharField(max_length=255,blank=True)
    full_name_of_merchant = models.CharField(max_length=255,blank=True)
    government_id = models.ImageField(upload_to = 'media/government_id' , null = True, blank=True) 
    images_of_restaurants = models.ImageField(upload_to = 'media/images_of_restaurants' , null = True, blank=True) 
    position_in_restaurant = models.CharField(max_length=255,blank=True)
    is_your_business_registered = models.BooleanField(default=True)
    tin_number = models.CharField(max_length=255,blank=True)
    longitude = models.FloatField(default=0000)
    latitude = models.FloatField(default=0000)
    long_you_have_been_working = models.IntegerField()
    want_delivery_guy = models.BooleanField(default=True)
    is_verified = models.BooleanField(default=False)
    is_active = models.BooleanField(default=True)
    is_staff = models.BooleanField(default=False)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

和其他人跟随,但他们采取了不同的细节,但没有完成,但serializer.py是

class RestaurantRegistrationSerializer(RegisterSerializer):
    restaurant_user = serializers.PrimaryKeyRelatedField(read_only=True,) #by default allow_null = False
    restaurant_name = serializers.CharField(required=True)
    full_name_of_merchant = serializers.CharField(required=True)
    government_id = serializers.ImageField(required=True, use_url=True)
    images_of_restaurants = serializers.ImageField(required=True, use_url=True)
    position_in_restaurant = serializers.CharField(required=True)
    is_your_business_registered = serializers.BooleanField(required=True)
    tin_number = serializers.CharField(required=True)
    longitude = serializers.FloatField(required=True)
    latitude = serializers.FloatField(required=True)
    long_you_have_been_working = serializers.IntegerField(required=True)
    want_delivery_guy = serializers.BooleanField(required=True)
    
    def get_cleaned_data(self):
            data = super(RestaurantRegistrationSerializer, self).get_cleaned_data()
            extra_data = {
                'restaurant_name' : self.validated_data.get('restaurant_name', ''),
                'full_name_of_merchant' : self.validated_data.get('full_name_of_merchant', ''),
                'government_id': self.validated_data.get('government_id', ''),
                'images_of_restaurants': self.validated_data.get('images_of_restaurants', ''),
                'position_in_restaurant': self.validated_data.get('position_in_restaurant', ''),
                'is_your_business_registered': self.validated_data.get('is_your_business_registered', ''),
                'tin_number': self.validated_data.get('tin_number', ''),
                'longitude': self.validated_data.get('longitude', ''),
                'latitude': self.validated_data.get('latitude', ''),

                'long_you_have_been_working': self.validated_data.get('long_you_have_been_working', ''),
                'want_delivery_guy': self.validated_data.get('want_delivery_guy', ''),
            }
            data.update(extra_data)
            return data

    def save(self, request):
        user = super(RestaurantRegistrationSerializer, self).save(request)
        user.is_restaurant = True
        user.save()
        seller = Restaurant(
            restaurant_user=user,
            restaurant_name=self.cleaned_data.get('restaurant_name'), 
            full_name_of_merchant=self.cleaned_data.get('full_name_of_merchant'),
            government_id=self.cleaned_data.get('government_id'),
            images_of_restaurants=self.cleaned_data.get('images_of_restaurants'),
            position_in_restaurant=self.cleaned_data.getlist('position_in_restaurant'),
            is_your_business_registered=self.cleaned_data.get('is_your_business_registered'),
            tin_number=self.cleaned_data.get('tin_number'),
            longitude=self.cleaned_data.get('longitude'),
            latitude=self.cleaned_data.get('latitude'),
            want_delivery_guy=self.cleaned_data.get('want_delivery_guy'),
            long_you_have_been_working=self.cleaned_data.get('long_you_have_been_working')
            )
        seller.save()
        return user

它完美地保存到数据库中,但我在views.py中编写的登录代码有问题

class loginViewSet(viewsets.ViewSet,LoginRequiredMixin):
    """Checks username and password and returns an auth token"""


    serializer_class = AuthTokenSerializer

    def create(self, request):
        """Use the obtainAuthtoken apiciew to calidate and create token"""

        return ObtainAuthToken().post(Response)

我写了这段代码来登录,但它不起作用请有人帮忙登录部分

4

0 回答 0