ValueError at /getGiftFromFaucet/ Представление contract.views.getGiftFromFaucet не вернуло объект HttpResponse. Вместо этого он вернул None

Я задаю свой первый вопрос на StackOverFlow о чем-то, что сводит меня с ума. Мой проект - это сайт аукциона, и он основан на django и Web3 для взаимодействия с умным контрактом, развернутым на моем Ganache. Теперь я получил эту ошибку на моем представлении: ValueError at /getGiftFromFaucet/ Представление contract.views.getGiftFromFaucet не вернуло объект HttpResponse. Вместо него возвращается None. Проблема заключается в следующем:

Если я регистрирую клиента и адрес, то я пытаюсь получить жетоны от Faucet, Если я указываю адрес клиента, я ничего не получаю. Но если я выбираю другой адрес, я получаю токен по первому адресу. Я действительно не понимаю, почему... Большое спасибо за помощь

моя модель:

class Customer(models.Model):

user = models.ForeignKey(User, on_delete=models.CASCADE)
address = models.CharField(max_length=256,
                           blank=False,
                           null=False,
                           unique=True,
                           error_messages={'unique': 'This address is already registered'})
tokenBalance = models.FloatField(default=0)
dollarBalance = models.FloatField(default=0)

моя Регистрация на сайте

def registrationForm(request):

if request.method == 'POST':
    form = RegistrationForm(request.POST)
    if form.is_valid():
        username = form.cleaned_data['username']
        password = form.cleaned_data['password']
        address = form.cleaned_data['address']
        user = User.objects.create_user(
            username=username,
            password=password,

        )
        newCustomer = Customer(
            user=user,
            dollarBalance=random.randrange(500, 1500),
            address=address,
            tokenBalance=0
        )
        user.save()
        newCustomer.save()
        user = authenticate(username=username, password=password)
        login(request, user)
        messages.success(request, f'''Welcome in DNote {request.user}''')
        return redirect('homepage')

else:
    form = RegistrationForm()
    context = {'form': form}
    return render(request, 'registration.html', context)

моя форма:

class ReceiveTokenFromFaucet(forms.ModelForm):

class Meta:
    model = Customer
    fields = ['address']

Мое мнение:

def getGiftFromFaucet(request):

customer = Customer.objects.get(user=request.user)
customerAddress = customer.address
if request.method == 'POST':
    form = ReceiveTokenFromFaucet(request.POST)
    if form.is_valid():
        form.save(commit=False)
        customerAddress = form.cleaned_data['address']
        if customerAddress not in alreadyRecompensed:
            contract.functions.transfer(
                customerAddress,  100000000000000000000
            ).transact({'from': faucet})
            alreadyRecompensed.append(customerAddress)
            customer.tokenBalance += 100000000000000000000
            customer.save()
            messages.success(request, 'Your Tokens Are accreditate on your Account')
            return redirect('/homepage/')


        if customerAddress in alreadyRecompensed:
            messages.error(request, 'Already Recompensed')
            return redirect('/homepage/')



else:
    form = ReceiveTokenFromFaucet()
    context = {'form': form, 'alreadyRecompensed': alreadyRecompensed}
    return render(request, 'requireFromFaucet.html', context)

Мой Html:

{% extends 'base.html' %}

{% load crispy_forms_tags %}

{% head_title %}{{ block.super }} ReceiveFreeTokens {% endblock head_title %}

{% block content %}

<div class="row justify-content-center mt-4">

    <div class="col-4">

        <h2>DNote</h2>
        <h3>Receive Free Tokens</h3>
        <p>Available only one time</p>
        <br>

        <form method="POST" enctype="multipart/form-data" style="max-width:100%">
            {% csrf_token %}
            {{ form|crispy }}
            <br>
            <input type="submit" class="btn btn-info" value="Create">
        </form>

    </div>
</div>

{% endblock content %}

Вернуться на верх