diff --git a/core/validators.py b/core/validators.py index 9fc52bd..cac9054 100644 --- a/core/validators.py +++ b/core/validators.py @@ -1,11 +1,29 @@ from django.core.exceptions import ValidationError from django.utils.translation import gettext_lazy as _ from monero.address import address +from core.monero import AuctionDaemon def address_is_valid_monero(value): + ad = AuctionDaemon() try: - address(value) + a = address(value) + if ad.connected: + net_type = ad.daemon.info()['nettype'] + if net_type == 'stagenet' and a.is_stagenet(): + return True + elif net_type == 'testnet' and a.is_testnet(): + return True + elif net_type == 'mainnet' and a.is_mainnet(): + return True + else: + raise ValidationError( + _('%(value)s is not a valid %(net_type)s address'), + params={ + 'value': value, + 'net_type': net_type + } + ) return True except ValueError: raise ValidationError( diff --git a/items/views.py b/items/views.py index edf7958..bc4dd20 100644 --- a/items/views.py +++ b/items/views.py @@ -85,7 +85,6 @@ def create_item(request): for err in form_errors: err_data = form_errors[err][0] messages.error(request, f'{err}: {err_data["message"]}') - return HttpResponseRedirect(reverse('create_item')) context = { 'form': CreateItemForm(request.POST or None), @@ -128,14 +127,13 @@ def edit_item(request, item_id): for err in form_errors: err_data = form_errors[err][0] messages.error(request, f'{err}: {err_data["message"]}') - return HttpResponseRedirect(reverse('get_item', args=[item_id])) - else: - context = { - 'form': CreateItemForm(instance=item), - 'formset': ItemImageFormSet(instance=item) - } - return render(request, 'items/edit_item.html', context) + context = { + 'form': CreateItemForm(instance=item), + 'formset': ItemImageFormSet(instance=item) + } + + return render(request, 'items/edit_item.html', context) @login_required def delete_item(request, item_id):