जब कोई विशिष्ट उपयोगकर्ता मौजूदा डेटा को अपडेट किए बिना फॉर्म जमा करता है तो क्या सटीक तारीख को सहेजना संभव होगा? तो मूल रूप से मेरे पास हर तारीख होगी जब कोई उपयोगकर्ता फॉर्म जमा करेगा। मैं ग्राफ के लिए इन तिथियों का उपयोग करना चाहता हूं। जब मैं फॉर्म जमा करता हूं तो यह वजन, ऊंचाई और लक्ष्य जैसे उपयोगकर्ता के डेटा को अपडेट करता है। यह ठीक काम करता है, लेकिन मैं "2020.09.12" जैसे सबमिशन दिनों को सहेजने में सक्षम होना चाहता हूं। और यदि उपयोगकर्ता अपना डेटा बदलने के लिए फिर से फॉर्म जमा करता है तो तारीख में "2020.09.12" + नई तारीख होनी चाहिए।
मैं जो हासिल करना चाहता हूं वह यह है: यदि कोई विशिष्ट उपयोगकर्ता काम करने के लिए 5 तिथियों की तुलना में 5 बार उदाहरण के लिए फॉर्म जमा करता है।
अपडेट करें
Model.py
from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.dispatch import receiver
from datetime import date
# Create your models here.
class Profile(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE,
related_name='user_profile')
weight = models.FloatField(max_length=20, blank=True, null=True)
height = models.FloatField(max_length=20, blank=True, null=True)
goal = models.FloatField(max_length=20, blank=True, null=True)
created_at = models.DateField(auto_now_add=True)
def __str__(self):
return self.user.username
@receiver(post_save, sender=User)
def save_user_profile(sender, instance, created, **kwargs):
if created:
Profile.objects.create(user=instance)
#else:
# instance.user_profile.save() #UPDATE
दृश्य
def get_data(request, *args,**kwargs):
data = {
'weight': request.user.user_profile.weight,
'goal': request.user.user_profile.goal,
'date': request.user.user_profile.created_at,
}
return JsonResponse(data)
ajax
var endpoint = '/api/data';
var defaultDataW = [];
var defaultDataG = [];
var dates = [];
$.ajax({
method: 'GET',
url: endpoint,
success: function(data){
console.log(data.weight);
console.log(data.goal);
console.log(data.date);
},
error: function(error_data){
console.log("Error");
console.log(error_data);
}
})
})
1 उत्तर
ऐतिहासिक डेटा को सहेजने के लिए एक मॉडल बनाएं। यह उपयोगकर्ता के लिए ForeignKey
के माध्यम से बाध्य होगा, और वहां तिथि के लिए एक अतिरिक्त कॉलम जोड़ देगा। auto_now_add पैरामीटर का उपयोग करें बचत के दौरान स्वचालित रूप से वर्तमान तिथि निर्धारित करने के लिए।
class UserData(models.Model):
user = models.ForeignKey(UserModel)
weight = models.IntegerField(...)
# other columns to store
# the following column has information when the data was created
created_at = models.DateField(..., auto_now_add=True)
जब आप डेटा प्रदर्शित करना चाहते हैं, तो नवीनतम तिथि के साथ रिकॉर्ड लोड करें।
संबंधित सवाल
नए सवाल
django
Django एक ओपन-सोर्स सर्वर-साइड वेब एप्लीकेशन फ्रेमवर्क है जिसे पायथन में लिखा गया है। यह कम कोड, विशेष-अतिरेक पर विशेष ध्यान देने और निहित से अधिक स्पष्ट होने के साथ जटिल डेटा-संचालित वेबसाइटों और वेब एप्लिकेशन बनाने के लिए आवश्यक प्रयास को कम करने के लिए डिज़ाइन किया गया है।