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 %}データベースから特定のユーザーのファイルの2つのレコードを取得し、それを2回印刷します。

于 2013-02-25T08:13:04.270 に答える