在我的网站上,我只希望某个用户从我的数据库中查看他们“拥有”的内容。例如,如果Bob拥有房屋1,2和3,他应该只能看到与这些房屋相关的东西。
让我们说我的模型看起来像这样:
class Houses(models.Model):
houseid = models.models.AutoField(db_column='houseID', primary_key=True).
owner = models.CharField(db_column='owner', max_length=50)
size = models.FloatField(db_column='size')
rooms = models.FloatField(db_column='rooms)
floors = models.FloatField(db_column='floors')
notes = models.CharField(db_column='notes', max_length=255, blank=True, null=True)
class HouseData(models.Model):
houseid = models.ForeignKey(Houses, models.DO_NOTHING, db_column='houseID')
date = models.DateField()
electricity = models.FloatField(db_column='electricity')
water = models.FloatField(db_column='water')
我如何限制用户在网站上看到的内容?
编辑:只是为了澄清,用户名和所有者名称是相同的
答案 0 :(得分:3)
您应该将ForeignKey用于User模型而不是所有者的CharField;那么您可以根据与request.user
的比较进行过滤。
答案 1 :(得分:0)
为什么不直接使用它?
HouseData.objects.filter(houseid__owner=owner_name_here)