Es requerimiento del proyecto partir de una base de datos ya existente, en la cuál existe una tabla empleados que extiende el modelo User de django a través del campo usuarioweb.
Necesito crear un servicio que al guardar un pedido de venta guarde el empleado (idemplea) relacionado al usuario logueado. Hasta aquí solo usé vistas genéricas probablemente debería usar otras clases, agradecería si alguien puede orientarme sobre como lograr este comportamiento y que métodos tendría que sobre escribir.
No sé si sea relevante pero la autenticación es por token: rest_framework_simplejwt
Sólo muestro algunos campos de los modelos a modo de ejemplo.
model.py
class User(AbstractUser): passclass Empleados(models.Model): idemplea = models.SmallIntegerField(primary_key=True) emplea = models.CharField(max_length=35) tipoemplea = models.CharField(max_length=1) usuariweb = models.ForeignKey(User, models.DO_NOTHING, verbose_name="Usuario Web", blank=True, null=True) class Pedidosventas(models.Model): idpedidoventa = models.AutoField(primary_key=True) idemplea = models.ForeignKey(Empleados, models.DO_NOTHING, db_column='idemplea') idempleaanulad = models.ForeignKey(Empleados, models.DO_NOTHING, related_name="pv_emplea_anulad", db_column='idempleaanulad', blank=True, null=True) idempleacerrad = models.ForeignKey(Empleados, models.DO_NOTHING, related_name="pv_emplea_cerrad", db_column='idempleacerrad', blank=True, null=True)
serializers.py
class EmpleadosSerializer(serializers.ModelSerializer): class Meta: model = Empleados fields='__all__'class UserSerializer(serializers.ModelSerializer): class Meta: model = User fields=('username', 'password') extra_kwargs={ 'password': { 'write_only':True } } def create(self, validated_data): user = User( username = validated_data['username'] ) user.set_password(validated_data['password']) user.save() return userclass PedidosventasSerializer(serializers.ModelSerializer): nombrefantas = CuentasclientesSerializer(source='idcuentaclient', read_only=True) emplea = EmpleadosSerializer(source='idemplea', read_only=True) empleacerrad = EmpleadosSerializer(source='idempleacerrad', read_only=True) empleaanulad = EmpleadosSerializer(source='idempleaanulad', read_only=True) class Meta: model = Pedidosventas fields='__all__'
apiviews.py
class PedidosventasList(generics.ListCreateAPIView): queryset = Pedidosventas.objects.all() serializer_class = PedidosventasSerializerclass PedidosventasDetalle(generics.RetrieveDestroyAPIView): queryset = Pedidosventas.objects.all() serializer_class = PedidosventasSerializer class PedidosventasUpdate(generics.UpdateAPIView): queryset = Pedidosventas.objects.all() serializer_class = PedidosventasSerializer