Здравствуйте, все, что я пытался решить эту проблему в течение нескольких дней, однако я действительно не уверен, где моя ошибка. Я новичок в Django и уже год программирую. У меня есть модельное портфолио, которое принимает тикеры, а также связывается с пользователем через внешний ключ. В моих моделях
class Portfolio(models.Model):
ticker = models.CharField(max_length=15)
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='investor', null=True)
def __str__(self):
return self.ticker
моя форма такова:
class PortfolioForm(forms.ModelForm):
class Meta():
model = Portfolio
fields = ['ticker']
def __init__(self, user, *args, **kwargs):
super(PortfolioForm, self).__init__(*args, **kwargs)
self.fields['ticker'].queryset = Portfolio.objects.filter(user=user)
, и на мой взгляд:
if request.method == 'POST':
form = PortfolioForm(request.POST or None, request.user)
if form.is_valid():
ticker = form.save(commit=False)
ticker.user = request.user
ticker.save()
return redirect('/add_stock')
else:
ticker = Portfolio.objects.filter(pk = request.user.id)
output = []
for ticker_item in ticker:
output.append(str(ticker))
return render(request, 'test_app/add_stock.html', {'ticker':ticker, 'output':output})
Я хочу, чтобы пользователь добавил акции вБаза данных портфолио, но возвращаются только биржевые бирки, которые они добавили. В настоящее время акции добавляются в базу данных, но пользователю ничего не возвращается. Также акции, добавленные в базу данных, доступны для любого пользователя, чтобы видеть не только конкретного вошедшего в систему пользователя. Я добавил @login_required в начало определенного представления. Буду признателен за любую помощь в этом вопросе. Спасибо вам всем.