Now costs from all users are displayed, I need to display only those that belong to the Profile.
I have model:
class Spend(models.Model):
user = models.ForeignKey(Profile, null=True, blank=True, on_delete=models.SET_NULL)
id = models.UUIDField(default=uuid.uuid4, unique=True, primary_key=True, editable=False)
name = models.CharField(max_length=200)
spend = DecimalField(max_digits=14, decimal_places=2)
And model:
class Profile(models.Model):
id = models.UUIDField(default=uuid.uuid4, unique=True, primary_key=True, editable=False)
user = models.OneToOneField(User, on_delete=models.CASCADE, null=True, blank=True)
username = models.CharField(max_length=200, blank=True, null=True)
In my views:
@login_required
def costs(request):
filter = CostFilter(request.GET, queryset=Spend.objects.all())
return render(request, 'users/includes/costs.html', {
'filter': filter
})
Template:
{% for cost_item in filter.qs %}
<tbody>
<tr>
<td>{{ cost_item.name }}</td>
<td>{{ cost_item.spend }}</td>
<td>
class CostFilter(django_filters.FilterSet):
class Meta:
model = Spend
fields = ("name", "spend")
I trying:
filter = CostFilter(request.GET, queryset=Spend.objects.filter(user=request.user)
But get:
Cannot query "test": Must be "Profile" instance.