为所有人编辑

EDITING ONE FOR ALL

如何做到这一点,如果您在一个地方将值从 true 更改为 false,反之亦然,则所有其他地方都会改变。 class 相关默认值为 True class 房间默认为 True class 注册值更改 如果在注册时 class 你从 true 变为 false,那么 Room class 和 Ralevant 也应该改变


from django.contrib.auth.models import User
import datetime

class Ralevant(models.Model):
    bool_roo = models.BooleanField(default=True)

    def __str__(self):
        return f'{self.bool_roo}'
year=datetime.datetime.now().year
month=datetime.datetime.now().month
day = datetime.datetime.now().day

class Rooms(models.Model):
    room_num = models.IntegerField()
    room_bool = models.ForeignKey(Ralevant, on_delete=models.CASCADE,
                                  related_name='name1')  
    category = models.CharField(max_length=150)
    def __str__(self):
        return f'{self.room_num}'

class Registration(models.Model):
    rooms = models.ForeignKey(Rooms, on_delete=models.CASCADE)
    first_name = models.CharField(max_length=150)
    last_name = models.CharField(max_length=150)
    admin = models.ForeignKey(User, on_delete=models.CASCADE)
    pasport_serial_num = models.CharField(max_length=100)
    birth_date = models.DateField()
    img = models.FileField()
    visit_date = models.DateTimeField()
    leave_date = models.DateTimeField(default=datetime.datetime(year=year,month=month,day=day+1,hour=12,minute=00,second=00))
    guest_count = models.IntegerField()
    room_bool = models.ForeignKey(Ralevant, on_delete=models.CASCADE,
                                  related_name='name2')
    def __str__(self):
        return self.rooms,self.last_name,self.first_name

您可以在 views.pyserializers.py 中实现它,简单导入模型并更新 Model.objects.filter(pk=obj.pk).update() 类似的东西

    def obj(request, pk,):
    reg = Registration.objects.get(pk=pk)
    room = Rooms.objects.get(pk=pk)
    if reg.room_bool == True:
        room.room_bool = True
        room.save()

    if reg.room_bool == False:
        room.room_bool = False
        room.save()