用户只能在django网站上看到数据库中的某些数据

时间:2017-03-08 15:06:54

标签: django django-views django-admin

在我的网站上,我只希望某个用户从我的数据库中查看他们“拥有”的内容。例如,如果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') 

我如何限制用户在网站上看到的内容?

编辑:只是为了澄清,用户名和所有者名称是相同的

2 个答案:

答案 0 :(得分:3)

您应该将ForeignKey用于User模型而不是所有者的CharField;那么您可以根据与request.user的比较进行过滤。

答案 1 :(得分:0)

为什么不直接使用它?

HouseData.objects.filter(houseid__owner=owner_name_here)