models.py
class Currency(models.Model):
currency_name = models.CharField(max_length=250)
class Address(models.Model):
user = models.ForeignKey(settings.common.AUTH_USER_MODEL, on_delete=models.CASCADE)
currency_names = models.ForeignKey(Currency, on_delete=models.CASCADE)
zebpay = models.CharField(max_length=250, blank=True, null=True)
Это модель, которую я имею для добавления адреса обмена. Каждый адрес будет сохранен в поле формы соответствующих бирж.
Существует несколько валют, таких как биткойн, эфириум и т. Д. Когда пользователь нажимает на вкладку биткойн, соответствующие биржи показывают, где в поле формы можно добавить и сохранить адрес поля. Аналогично для эфириума и других. После добавления адреса и нажатия кнопки сохранения пользователю будет показан добавленный адрес.
В админ-панели, когда администратор нажимает на адрес, он показывает 3 вещи в основном: -
- Пользователь, которому он принадлежит
- Валюта, к которой она относится
- Что это за обмен
Я могу сделать 1 (потому что пользователь уже вошел в систему) и 3 (адрес добавлен в поле формы), но не могу добавить обмен на сохраненный адрес.
views.py
class ZebpayView(TemplateView):
template_name = 'currencies/addresses.html'
def get(self, request):
form = ZebpayForm()
addresses = Address.objects.all().order_by('-addition_date')
users = User.objects.exclude(id=request.user.id)
friend = Friends.objects.all().first()
friends = friend.users.all()
context = {'form': form, 'addresses': addresses, 'users': users, 'friends': friends}
return render(request, self.template_name, context)
def post(self, request):
form = ZebpayForm(request.POST)
if form.is_valid():
zebpay = form.save(commit=False)
zebpay.user = request.user
zebpay.save()
text = form.cleaned_data['zebpay'] #data filled in form
form = ZebpayForm() #show blank form again after one input
return redirect('currencies:exchanges')
context = {'form': form, 'text': text}
return render(request, self.template_name, context)
forms.py
class ZebpayForm(forms.ModelForm):
zebpay = forms.CharField(widget=forms.TextInput(
attrs={'class': 'form-control', 'placeholder': 'Address'}
))
class Meta:
model = Address
fields = ('zebpay',)
Как добавить название валюты, по которой пользователь щелкнул и сохранил адрес в соответствующем ему поле обмена?
Кроме того, нужно ли добавлять названия валют в административной панели или вносить изменения в мою модель валюты, чтобы добавить несколько валют?