0

I have 3 apps in django project, I created a new html file on dictionary app which is Refcode_Info.html. This page must render a simple form and linked a simple. When I click the button, form must show on screen. However when I click the button, I get 404 page and mixxed url, Likewise, I want to direct another url on this page, but seconda url already exits in this project and I have used on different stages on project but doesnt work on new html page(Refcode_Info.html). My new html may have a problems but my Accounts links is working on different stages.

This is my Refcode_Info.html codes on below.

<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>

This is views.py page attached below;

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})

This is forms.py attached below;

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='')

Also the my urls;

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'),

Also, I have url output like this, I research which is why but I couldn't found it. enter image description here

Anyone have a idea?

Oekinci
  • 17
  • 6
  • Welcome to Stack Overflow. I find myself failing to understand your problem. Please add your complete error traceback. Also you have added too much code for what appears to be a simple problem. Please look at how to write a [mre]. – Abdul Aziz Barkat Feb 06 '21 at 12:09
  • Welcome to Stack Overflow. Once html is rendered from django you can't render other template again based on what you click in the frontend(button). What you can do is render the all the html and display:hidden using javascript. Later on when you need it, you can display it. – Siva Sankar Feb 06 '21 at 12:21
  • Firstly thank you for question back, I tried to js this html pages for click event and redirection but it doesnt work. After the research I m thinking Django doesnt redirect url for string format. I did direction from template pages for hundres time but it doesnt work. @SivaSankar Pleasei can you share a simple resources for me your js code for your mentioned? Maybe my shots doesnt work because I work on much time, maybe I coulnt th esolution. Thank you for responses again. – Oekinci Feb 07 '21 at 09:49
  • you can use ajax and render html string from django response without reloading the page. but that is a bit complex. I think you need something like this: https://stackoverflow.com/questions/18976302/returning-rendered-html-via-ajax/18976471 – Siva Sankar Feb 07 '21 at 11:51
  • I solved on vşews page. This click render the two page at the same time. Thanks for help. – Oekinci Feb 07 '21 at 20:38

0 Answers0