मैं अपनी तालिका में एक 'अपडेट फंक्शन' बनाने की कोशिश कर रहा हूं ताकि मेरा डेटा एक उपयोगकर्ता द्वारा बदला जा सके।

तो यहां मेरा एचटीएमएल फॉर्म के साथ है जहां मैं अपना डेटा वापस जाना चाहता हूं, इसलिए जब उपयोगकर्ता फिर से सबमिट करता है तो यह उस मान को डेटाबेस में सहेजता है:

 <h3>Add a location </h3></br></br>
      <div class="addition">
        <form method="POST" action="" autocomplete="off">
          {% csrf_token %}
            <div class="row">
              <div class="col">
                <input type="text" class="form-control" aria-describedby="emailHelp" placeholder="Location name" name="name" autocomplete="off">
              
              </div>

              <div class="col">    
                <input type="text" class="form-control" aria-describedby="emailHelp" placeholder="Description" name="desc" autocomplete="off">
                
              </div>
              <div class="col">
                <button type="submit" class="btn btn-primary">Submit</button>
                
              </div></br></br>
             
        </form> </br></br>

    <h3>Overview locations</h3>


      <div class="table-responsive">
        <table class="table table-striped table-sm">
          <thead>
            <tr>
              <th>#</th>
              <th>Name</th>
              <th>Description</th>
              <th>Description</th>
            </tr>
          </thead>
          <tbody>
            {% for item in all_locations %}   
                <tr>                    
                <td>{{ forloop.counter }}</td>
                <td>{{ item.name }}</td>
                <td>{{ item.desc }}</td>
                <td><a class="btn btn-sm btn-info" href="{% url 'update_location' item.id %}" >update</a></td>
              </tr>

मेरे views.py मेरे क्रिएशन फंक्शन और मेरे अपडेट फंक्शन के साथ


def location(request):
    all_locations = Location.objects.all()
        if request.method == "POST":
            loc_form = LocationForm(request.POST or None)

            if loc_form.is_valid():
                loc_form.save()

            return render(request, 'location.html', {"all_locations": all_locations})

    else:
        return render(request, 'location.html', {"all_locations": all_locations})
    return render(request, 'location.html', {"all_locations": all_locations})





def updateLocation(request, pk):
    all_locations = Location.objects.all()
    location = Location.objects.get(id=pk)
    loc_form= LocationForm(instance=location)
    name = loc_form.instance.name
    desc = loc_form.instance.desc
    print(name)
    print(desc)
    return render(request, 'location.html', {"all_locations": all_locations, "name": name, "desc": desc})

मेरा models.py

class Location(models.Model):
    creation_date = models.DateTimeField(auto_now = True)
    name = models.CharField(max_length=50, default=None)
    desc =  models.CharField(max_length=250, default="", null=True, blank=True)
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)

और मेरा urls.py

urlpatterns = [
path('', views.index, name="index"),
path('locations', views.location, name="location"),
path('locations/<str:pk>', views.updateLocation, name="update_location"),
]

तो मूल रूप से मैं पुराने डेटा को वापस HTML इनपुट में डालने पर फंस गया हूं। मैंने एक अलग दृष्टिकोण के साथ भी कोशिश की है लेकिन मूल रूप से एक ही समस्या थी।

कोई सुझाव? आपका बहुत बहुत धन्यवाद!

0
Gerhand 7 मार्च 2021, 19:16

1 उत्तर

सबसे बढ़िया उत्तर

कुछ और करते हुए मैंने इसे समझ लिया:

इनपुट लाइन पर html फ़ाइल में value="{{ name }}" जोड़ें। विवरण के लिए ऐसा ही करें

0
Gerhand 7 मार्च 2021, 20:03