加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

数据库 – (1242,’子查询返回超过1行’)Django中的错误?

发布时间:2020-12-12 08:33:37 所属栏目:MsSql教程 来源:网络整理
导读:我在Django中有这样的模型: class File(models.Model): users = models.ForeignKey(User) file_name = models.CharField(max_length=100) type = models.CharField(max_length=10) source = models.CharField(max_length=100) start_date = models.TextField
我在Django中有这样的模型:
class File(models.Model):
    users = models.ForeignKey(User)
    file_name = models.CharField(max_length=100)
    type = models.CharField(max_length=10)
    source = models.CharField(max_length=100)
    start_date = models.TextField()
    end_date = models.TextField()
    duration = models.TextField()
    size = models.TextField()
    flag = models.TextField()
    #delete_date = models.CharField(max_length=100,null=True,blank=True)

class Share(models.Model):
    users = models.ForeignKey(User)
    files = models.ForeignKey(File)
    shared_user_id = models.IntegerField()
    shared_date = models.TextField()

我正在尝试提取登录用户共享的文件.我只是在Share中查询

file_s = Share.objects.filter(users_id=log_id)

这将提取登录用户共享的文件.因为,现在我知道登录用户共享了哪个文件,我试图从文件表中获取文件信息:

shared_file = File.objects.filter(users_id=file_s)

但这是回归:

DatabaseError at /shared_by_me/
(1242,'Subquery returns more than 1 row')

#my_views
def shared_by_me(request):
    log_id = request.user.id
    username = request.user.username
    #shared_file = File.objects.filter(users_id=file)
    file_s = Share.objects.filter(users_id=log_id)
    shared_file = File.objects.filter(users_id=file_s)
    #b = Share.objects.filter(users_id=log_id)
    return render_to_response('shared_by_me.html',{'shared_by_me':shared_file,'username':username},context_instance=RequestContext(request))

#my_template
{% for choice in shared_by_me %}
            <tr class="oddclass">
              <td><input type="checkbox" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}" /></td>
              <td><label for="choice{{ forloop.counter }}">{{ choice.file_name }}</label></td>
              <td>{{ choice.type }}</td>
              <td>{{ i.size }}</td>
              <td>{{ i.end_date }}</td>
            </tr>
{% endfor %}

我究竟做错了什么?

解决方法

因为文件不是模型而是查询集,所以你应该使用__in,例如:
shared_file = File.objects.filter(users_id__in=file_s)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读