0

我有一个 django 视图,它将 shared_user_id 提供给 django 模板:

 shared_by = Share.objects.filter(shared_user_id=log_id)

这是我的分享和用户模型:

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

class User(AbstractBaseUser):
    #id = models.IntegerField(primary_key=True)
    #identifier = models.CharField(max_length=40, unique=True, db_index=True)
    username = models.CharField(max_length=90, unique=True, db_index=True)
    create_time = models.DateTimeField(null=True, blank=True)
    update_time = models.DateTimeField(null=True, blank=True)
    email = models.CharField(max_length=225)
    #password = models.CharField(max_length=120)
    external = models.IntegerField(null=True, blank=True)
    deleted = models.IntegerField(null=True, blank=True)
    purged = models.IntegerField(null=True, blank=True)
    form_values_id = models.IntegerField(null=True, blank=True)
    disk_usage = models.DecimalField(null=True, max_digits=16, decimal_places=0, blank=True)
    objects = UserManager()
    USERNAME_FIELD = 'email'
    class Meta:
        db_table = u'galaxy_user'

我在这样的模板中调用:

{% for choice in shared_with_me %}
    {% csrf_token %}
    <tr class="oddclass">
        <td><input type="checkbox" name="choice_shard_with_me" id="choice{{ forloop.counter }}" value="{{ choice.file_name }}" onchange="checkChecked()"/></td>
        <td><label for="choice{{ forloop.counter }}">{{ choice.file_name }}</label></td>
        <td>{{ choice.type }}</td>
        <td>{{ choice.size }}</td>
        <td>{{ choice.end_date }}</td>
        {% for file in shared_by %}
            {% ifequal file.users choice.users %} 
                {% if forloop %}
                    <td>{{ file.users.username }}</td>
                {% endif %}
            {% endifequal %}
        {% endfor %}
    </tr>
{% endfor %}    

这是模板中每个表的列名:

文件名、类型、大小、共享位置、共享者

在共享者中,显示共享文件的用户的用户名。但是对于同一个用户,用户名是这样重复的:与我共享

    File Name   Type    Size       Shared On            Shared By
    ok.txt  txt 4.78 MB February 24, 2013, 09:59AM  sachitad
    ok.txt  txt 4.78 MB February 24, 2013, 10:08AM  sachitdhiifds   sachitdhiifds
    NC_008253.fna   fna 4.78 MB February 24, 2013, 10:11AMsachitdhiifds sachitdhiifds
    NC_008253.fna   fna 4.78 MB February 24, 2013, 10:20AM  hello
    ok.txt  txt 4.78 MB February 24, 2013, 10:30AM  abcde   abcde

我究竟做错了什么?

4

1 回答 1

0

你应该检查你的数据集。我认为该代码:{% for file in shared_by %}从数据库中获取具有特定用户的两条文件记录并打印两次。

于 2013-02-25T08:13:04.270 回答