首页 > 解决方案 > Django 无法呈现模板 url?

问题描述

我在 django 项目中有 3 个应用程序,我在字典应用程序上创建了一个新的 html 文件,即 Refcode_Info.html。这个页面必须呈现一个简单的表单并链接一个简单的。当我单击按钮时,表单必须显示在屏幕上。但是,当我单击按钮时,我得到 404 页面和混合 url,同样,我想在此页面上定向另一个 url,但是第二个 url 已经在这个项目中退出,我在项目的不同阶段使用过,但不适用于新的 html页面(Refcode_Info.html)。我的新 html 可能有问题,但我的帐户链接在不同阶段工作。

这是我下面的 Refcode_Info.html 代码。

<script>
    $(document).ready(function() {
        if ($(document).width() > 768) {
            $("#accordion_desktop").accordion({
                header: '.header',
                collapsible: true,
                active: false,
                autoHeight: true,
                heightStyle: 'content',
                animate: 50
            });
            $("#desktop").show();
        } else {
            $("#accordion_mobile").accordion({
                header: '.header',
                collapsible: true,
                active: false,
                autoHeight: true,
                heightStyle: 'content',
                animate: 50
            });
            $("#mobile").show();
        }

        $(window).resize(function() {
            if ($(document).width() > 768) {
                $("#accordion_desktop").accordion({
                    header: '.header',
                    collapsible: true,
                    active: false,
                    autoHeight: true,
                    heightStyle: 'content',
                    animate: 50
                });
                $("#desktop").show();
                $("#mobile").hide();
            } else {
                $("#accordion_mobile").accordion({
                    header: '.header',
                    collapsible: true,
                    active: false,
                    autoHeight: true,
                    heightStyle: 'content',
                    animate: 50
                });
                $("#mobile").show();
                $("#desktop").hide();
            }
        });
    });
</script>
<style>
    .ui-widget-content {
        border: none;
    }
    
    .ui-state-focus {
        outline: none;
    }
    
    .sign-container {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
        display: flex;
        /* add */
        justify-content: center;
        /* add to align horizontal */
        align-items: center;
        /* add to align vertical */
    }
    
    #accordion_desktop .ui-icon {
        display: none;
    }
    
    #accordion_desktop .ui-accordion-header a {
        padding-left: 0;
    }
    
    #accordion_mobile .ui-icon {
        display: none;
    }
    
    #accordion_mobile .ui-accordion-header a {
        padding-left: 0;
    }
</style>
<div id="desktop" class="container-fluid p-0" style="display:none; text-align:center;">
    <div id="accordion_desktop">
        <!-- Not a student-->
        <div class="header m-0 p-0" style="border:none; background: #0c151D;">
            <div class="row pt-5 pb-4 m-0" style="background-color: #0c151D; padding-top: 1rem !important; padding-bottom: 1rem !important;">
                <div class="col-4 col-md-2 p-0">
                    <div class="text-right">
                        <img class="img-fluid" src="/static/img/studentnot.png" style="max-height: 100px;" />
                    </div>
                </div>
                <div class="col-8 col-md-10 text-center">
                    <p style="color:#FFFFFF; font-size:1.4em;padding-top:1.25em;">Üniversite personeli/öğrencisi değilim <img class="img-fluid" src="/static/img/plus_blue.png" style="max-height: 25px; margin-bottom: 5px; margin-left: 10px;" /></p>
                </div>
            </div>
        </div>
        <div class="row pt-4  pb-4" style="background-color:#0c151D;">
            <div class="col-12 col-md-12 text-center pt-3">
                <p style="color:#FFFFFF; font-size:1.2em;">Legaling'in zengin veri tabanından, şu aşamada yalnızca üniversiteler vasıtasıyla faydalanılabilmektedir. Ancak istisnai durumlarda bireysel kullanıcılara da ücretsiz erişim hakkı tanımlanabilmektedir. Bu kapsamda Legaling'i nereden duyduğunuz
                    ve neden tam bir erişim talep ettiğinizi bizimle paylaşırsanız başvurunuzu değerlendirmeye almaktan mutluluk duyarız.</p>
                <a class="btn btn-primary" href="{% url 'Accounts:personalize' %}">Referans Kodu Ekle</a>
                <a class="btn btn-primary" href="mailto:legalingnetdestek@gmail.com">Kod Talebi Gönder</a>
                <a class="btn btn-primary" href="mailto:legalingnetdestek@gmail.com">Konu ile İlgili Düşünceleriniz</a>
            </div>
        </div>
        <!-- Student -->
        <div class="header m-0 p-0" style="border:none; background: #1E2329;">
            <div class="row pt-5 pb-4 m-0" style="background-color:#1E2329; padding-top: 1rem !important; padding-bottom: 1rem !important;">
                <div class="col-4 col-md-2 p-0">
                    <div class="text-right">
                        <img class="img-fluid" src="/static/img/student.png" style="max-height: 100px;" />
                    </div>
                </div>
                <div class="col-8 col-md-10 text-center">
                    <p style="color:#FFFFFF; font-size:1.4em;padding-top:1.25em;">Üniversite personeliyim/öğrencisiyim. <img class="img-fluid" src="/static/img/plus_gray.png" style="max-height: 25px; margin-bottom: 5px; margin-left: 10px;" /></p>
                </div>
            </div>
        </div>
        <div class="row pt-4  pb-4" style="background-color:#1E2329;">
            <div class="col-12 col-md-12 text-center pt-3">
                <p style="color:#FFFFFF; font-size:1.2em;">Legaling, belirli bir üniversiteden en az 2 personel ya da 10 öğrenciden talep gelmesi durumunda ilgili üniversite ile Legaling'in zengin veri tabanını açmak üzere temasa geçer. Bu doğrultuda Legaling'in üniversiteniz ile temasa geçmesini
                    istiyorsanız aşağıdaki alanları doldurunuz</p>
                <a class="btn btn-primary" href="{% url 'Dictionary:getUniInfo' %}">Üniversite Bilgilerini Paylaş</a>
            </div>
        </div>
    </div>
</div>


<!-- MOBILE -->

<div id="mobile" class="container-fluid p-0" style="display:none;">
    <div id="accordion_mobile">

        <!-- Not a Student -->
        <div class="header m-0 p-0" style="border:none; background: #0c151D;">
            <div class="row m-0 p-1" style="background-color:#0C151D; padding-top: 1rem !important; padding-bottom: 1rem !important;">
                <div class="col-3 col-md-2 p-0">
                    <div class="sign-container text-right">
                        <img class="img-fluid" src="/static/img/studentnot.png" style="max-height: 60px;" />
                    </div>
                </div>
                <div class="col-8 col-md-9 text-center">
                    <p style="color:#FFFFFF; font-size:1.2em;">Legaling'in zengin veri tabanından, şu aşamada yalnızca üniversiteler vasıtasıyla faydalanılabilmektedir. Ancak istisnai durumlarda bireysel kullanıcılara da ücretsiz erişim hakkı tanımlanabilmektedir. Bu kapsamda Legaling'i nereden
                        duyduğunuz ve neden tam bir erişim talep ettiğinizi bizimle paylaşırsanız başvurunuzu değerlendirmeye almaktan mutluluk duyarız.</p>
                </div>
                <div class="col-1 col-md-1 p-0">
                    <div class="sign-container">
                        <img class="img-fluid" src="/static/img/plus_blue.png" style="max-height: 25px;" />
                    </div>
                </div>
            </div>
        </div>

        <!-- Student -->
        <div class="header m-0 p-0" style="border:none; background: #1E2329;">
            <div class="row p-1 m-0" style="background-color:#1E2329; padding-top: 1rem !important; padding-bottom: 1rem !important;">
                <div class="col-3 col-md-2 p-0">
                    <div class="sign-container text-right">
                        <img class="img-fluid" src="/static/img/student.png" style="max-height: 60px;" />
                    </div>
                </div>
                <div class="col-8 col-md-9 text-center">
                    <p style="color:#FFFFFF; font-size:1.2em; padding-top: 1em;">Üniversite personeliyim/öğrencisiyim.</p>
                </div>
                <div class="col-1 col-md-1 p-0">
                    <div class="sign-container">
                        <img class="img-fluid" src="/static/img/plus_gray.png" style="max-height: 25px;" />
                    </div>
                </div>
            </div>
        </div>
        <div class="row pt-4  pb-4" style="background-color:#1E2329;">
            <div class="col-12 col-md-12 text-center pt-3">
                <p style="color:#FFFFFF; font-size:1.2em;">Legaling, belirli bir üniversiteden en az 2 personel ya da 10 öğrenciden talep gelmesi durumunda ilgili üniversite ile Legaling'in zengin veri tabanını açmak üzere temasa geçer. Bu doğrultuda Legaling'in üniversiteniz ile temasa geçmesini
                    istiyorsanız aşağıdaki alanları doldurunuz</p>
            </div>
        </div>
    </div>
</div>

这是下面附加的views.py页面;

def getUniInfo(request):
    text = open(os.path.join(settings.BASE_DIR, "Dictionary", "templates","Refcode_Info.html"),"r",encoding="utf8")
    UsageText = text.read()
    text.close()
    if request.method == 'POST':
        form = askUniversityInfoForm(request.POST)
        if form.is_valid():
            obj = UserUniversity() # get new user details
            obj.university = form.cleaned_data['universityName']
            obj.university_user_email = form.cleaned_data['universityEmail']
            obj.save()
            mail_subject = "Legaling Aktivasyon Maili"
            to_email = form.cleaned_data.get('email')
            email = EmailMessage(mail_subject, message, to=[to_email])
            email.content_subtype = "html"
            email.send()

            context = {'UserUniversity', UserUniversity}
            return render(request, "Refcode_Info.html", context)
        else:
            return redirect('Dictionary:index')
    else:
        form = askUniversityInfoForm()

    if(request.is_ajax()):
        return render(request, 'usertext_partial.html', {'title':"Neden Referans Kodu Almalıyım?", 'text':UsageText})
    else:
        return render(request, 'usertext.html', {'title':"Neden Referans Kodu Almalıyım?", 'text':UsageText})

这是下面附加的forms.py;

class askUniversityInfoForm(forms.Form):
    universityName= forms.CharField(label='Your University Name', max_length=100, required=True, widget=forms.TextInput())
    universityEmail= forms.CharField(label='Your university Email Address', max_length=100, required=True, widget=forms.TextInput())
    
    def __init__(self, *args, **kwargs):
        self.helper = FormHelper()
        self.helper.add_input(Submit('Gönder', 'Gönder', css_class='bbtn btn-block btn-success'))
        super(askUniversityInfoForm, self).__init__(*args, **kwargs)

        if not 'userid' in self.initial:
            self.fields['name'] = forms.CharField(required=True, label="Adınız", max_length=50)
            self.fields['surname'] = forms.CharField(required=True, label="Soyadınız", max_length=100)
            self.fields['email'] = forms.EmailField(required=True, label="E-Posta Adresiniz", max_length=150)
            self.fields['phonenumber'] = forms.RegexField(regex=r'^\([0-9]{3}\)\-?\s?[0-9]{3}\-?\s?[0-9]{2}\-?\s?[0-9]{2}$',required=False,label='Cep Telefonu Numarası', widget=forms.widgets.TextInput(attrs={'type':'tel','class':'input-phone','onfocus':'registerphoneinput();'}), error_messages = {'invalid':"Telefon Numarası Formatı Doğru Değil"})
            self.fields['profession'] = ProfessionchoiceField(queryset=Profession.objects.all(), required=True,label='Mesleğiniz')
            
            self.fields['captcha'] = ReCaptchaField(widget=ReCaptchaV2Checkbox, label='')

还有我的网址;

from django.conf.urls import url, include
from django.urls import path, re_path
from Dictionary import views

 path('referencecodetext', views.referencecodetext, name='referencecodetext'),
 path('getUniInfo', views.getUniInfo, name='getUniInfo'),

另外,我有这样的 url 输出,我研究这就是为什么但我找不到它。 在此处输入图像描述

有人有想法吗?

标签: pythonjquerydjangowebredirect

解决方案


推荐阅读