【问题标题】:Creating view for update table via foregien key access in django在 django 中通过外键访问创建更新表的视图
【发布时间】:2016-03-11 03:33:38
【问题描述】:

我对 django 真的很陌生,并且一直在 django 查询中使用外键。任何人都可以帮助我。

情况:我创建了一个带有用户名和电子邮件字段的注册页面。因此,当新用户注册时,其用户名和电子邮件地址保存到 auth_user 表中。

问:我想在每次新用户注册时在 UserDetails 类中创建一个模型实例。或者您可以在表 userdetails 中将用户条目作为外键输入。我正在使用 postgresql 数据库。

Myapp/models.py

   class Pincode(models.Model):
        pincode = models.CharField("PinCode",null=False)
        geom = GeopositionField("Location")
        objects = models.GeoManager()

        def __unicode__(self):
            return u'%s' %(self.pincode)

   class UserDetails(models.Model):
    user = models.OneToOneField(User, related_name='User_Details',unique=True)
    pin= models.ForeignKey(Pincode,related_name='pin', null= True, blank=True)
    rating= models.CharField(max_length=12, null=True, blank=True)

    def __unicode__(self):
        return u'%s, %s, %s' % (self.user,  self.pin, self.rating)

views.py

def index(request):
    update_user_details()

    return render_to_response("larb/index.html",
                              RequestContext(request))


def update_user_details(request): ## **Stuck here**
    user_details = UserDetails.objects.all()
    new_entry= User.objects.exclude()  # Don't know how to do

目前我正在考虑在更新表的视图中创建一个函数。 首先,它检查新条目意味着 auth_user 中不在 userdetails 表中的条目。如果找到更新 userdetails 表。

【问题讨论】:

    标签: postgresql django-models django-views django-queryset


    【解决方案1】:

    我希望我解决了它,现在看起来很好:

    这里是views.py代码

    def index(request):
        update_user_details()
        return render_to_response("larb/index.html",
                                  RequestContext(request))
    
    
    def update_user_details():
       id_past_entries = UserDetails.objects.all().values_list('user_id', flat = True)
       new_entries = User.objects.exclude(id__in=id_past_entries)
       if new_entries:
           for new_id in new_entries:
                new = User.objects.get(id=new_id)
                UserDetails.objects.create(user=new)
                UserDetails.save()
    

    【讨论】:

      猜你喜欢
      • 2018-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-02
      • 1970-01-01
      • 2013-10-24
      • 2014-12-08
      相关资源
      最近更新 更多